2014-04-24 2 views
0

안녕하세요. 내 애플리케이션에서 이미지 배열을 사용하고 있기 때문에 이미지를 스 와이프하여 왼쪽 및 오른쪽 모두 내 애플리케이션에서 스 와이프 제스추어를 사용했습니다. 문제가 있습니다. 자사의 이미지를 보여주는 것이 아니라 단지 두 개의 이미지를 보여주는 것만이이 문제를 해결하는 방법을 가르쳐주세요.ISwipeGesture iOS 7을 사용하여 NSArray 이미지를 스 와이프하는 방법

내 스 와이프 코드.

- (IBAction)handleswipe:(UIGestureRecognizer *)sender { 

     //NSLog(@"swiped"); 
     int imageIndex = 3; 
     NSArray *images = [[NSArray alloc] initWithObjects: 
               @"2.jpg", 
               @"3.jpg", 
               @"4.jpg", 
              @"5.jpg", nil]; 

    UISwipeGestureRecognizerDirection direction = [(UISwipeGestureRecognizer *) sender direction]; 
    switch (direction) { 
     case UISwipeGestureRecognizerDirectionLeft: 
       imageIndex++; 
       break; 
     case UISwipeGestureRecognizerDirectionRight: 
       imageIndex--; 
       break; 
      default: 
       break; 
     } 
    imageIndex = (imageIndex < 0)? ([images count] -1): 
    imageIndex % [images count]; 
    imageview.image = [UIImage imageNamed:[images objectAtIndex:imageIndex]]; 
    } 

나는 이미지보기에서 출근 제스처를 추가하고 난 이미지 뷰에 이미 하나 개의 이미지를 설정하지만 그것은 무작위로 I가 잘못하고 어떻게 해요 어디 있는지 말해주십시오에 두 개의 이미지를 보여주는 순서에 표시되지 이 문제를 해결하십시오.

감사합니다. 글로벌입니다 imageIndxMain :이 도움이

+0

이것은 UIScrol lView도. –

+0

문제의 컨텍스트를 이해하기 위해 슬쩍 제스처가 첨부 된 UIImageView가 있습니까? 스 와이프가 등록 될 때마다 위 메서드가 호출됩니다. 맞습니까? – bennythemink

+0

@bennythemink 나중에 excatly – user3427551

답변

0
right_gesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(method)]; 
     right_gesture.direction = UISwipeGestureRecognizerDirectionLeft; 
     [objSecondView.view addGestureRecognizer:right_gesture]; 
     right_gesture.delegate = self; 

및 방법에 ...

if (varSecondCount==3) { 
} 
else{ 

    varSecondCount++; 
switch (varSecondCount) { 
     case 0: 
[imageView setImage:[UIImage imageNamed:@"rcz_img1.png"]]; 
break; 
case 1: 
    [imageView setImage:[UIImage imageNamed:@"rcz_img2.png"]]; 
break; 
case 2: 
    [imageView setImage:[UIImage imageNamed:@"rcz_img3.png"]]; 
break; 
case 3: 
    [imageView setImage:[UIImage imageNamed:@"rcz_img4.png"]]; 
break; 
case 4: 
    [imageView setImage:[UIImage imageNamed:@"step2_5.png"]]; 
break; 

default: 
break; 
} 

희망 ....

0

나는 여기에 대한 코드 내 응용 프로그램에서 같은 일을 구현 한 배열의 현재 보유 인덱스 변수

if (gesture.direction == UISwipeGestureRecognizerDirectionRight) 
{ 
     if (imageIndxMain==0) 
      return; 
     else 
     { 
      CATransition *transition = [CATransition animation]; 
      transition.duration = .40; 
      transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
      transition.type = kCATransitionPush; 
      transition.subtype =kCATransitionFromLeft; 
      transition.delegate = self; 
      [imagescrollview.layer addAnimation:transition forKey:nil]; 

      UIImage *img1; 
      imageIndxMain--; 

      ImgView.image=[imageArray objectAtIndex:imageIndxMain]; 

     }}else if (gesture.direction == UISwipeGestureRecognizerDirectionLeft) 
{ 

     if (imageIndxMain == ([imageArray count] - 1)) 
     { 
      return; 
     } 
     else 
     { 
      CATransition *transition = [CATransition animation]; 
      transition.duration = .40; 
      transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
      transition.type = kCATransitionPush; 
      transition.subtype =kCATransitionFromRight; 
      transition.delegate = self; 
      [imagescrollview.layer addAnimation:transition forKey:nil]; 
      UIImage *img1; 

      imageIndxMain++; 
      ImgView.image=[imageArray objectAtIndex:imageIndxMain]; 


     } 

    } 
관련 문제