2014-02-15 2 views
0

내 UIView에 추가 한 UIPinchGestureRecognizer가 있는데, 이후 메인 뷰의 하위 뷰로 추가됩니다. 어떤 이유로 사용자가 처음 꼬집을 때 핀치 제스쳐가 감지되지 않지만 나중에 시도 할 때 핀치 제스처가 감지되지 않습니다. 아래 코드를 참조하십시오. 나중에 사용자가 눌렀을 때 nslog가 인쇄되기 전에 적어도 한 번은보기를 터치해야합니다.iOS 제스처 인식기는 사용자가 뷰를 터치 한 후에 만 ​​시작합니다.

선언 :

 self.pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(expandAction:)]; 
     self.pinchGesture.scale = 0.0; 
     self.pinchGesture.delegate = self; 
     [self addGestureRecognizer:self.pinchGesture]; 

작업 :

위임
-(void)expandAction:(UIPinchGestureRecognizer *)sender { 
    NSLog(@"pinch detected"); 
    //stop reminding user 
    [self stopTimer:self.pinchExpandTimer]; 
    [UIView animateWithDuration: 0.0 
          delay: 0.0 
         options: UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionBeginFromCurrentState 
        animations: ^{ 
         [self.pinchCircle1 removeFromSuperview]; 
         [self.pinchCircle2 removeFromSuperview]; 
        } 
        completion: ^(BOOL finished){ 
        }]; 
    //calculate progress 
    CGFloat progress = MIN(sender.scale/5, 1.0); 
    [self setPinchAnimationWithProgress:progress]; 
} 

: 기본적으로

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
#pragma mark UIGestureRecognizer Delegate 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    return YES; 
} 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
} 

, 그것은 사용자 같은 느낌이 뷰가 다음 순서로 동작을 "선택"해야한다 그걸 가져 왔어. 보기에서 사용자 상호 작용을 활성화하거나 첫 번째 응답자를 설정하려고 시도했지만 여전히 작동하지 않습니다. 이 동작에서 다른 제스처 인식기를 사용하는 경우이보기에 사용되지만 다른 동작 인식기는 사용해야한다고 생각하지 않습니다. 누구든지 아이디어가 있습니까?

+0

'duration'과 'delay'가 모두 0이기 때문에 실제로 애니메이션을 적용하지 않고 UIView animateWithDuration 블록을 사용한 이유가 있습니까? – n00bProgrammer

+0

새 애니메이션이 영향을 미치는 요소에서 진행중인 애니메이션을 취소합니다. 이 경우 핀치 제스처가 감지되면 움직이는 항목을 제거하고 싶습니다. – kilakev

답변

0

수정 됨. 문제는 그것을 초기화 한 직후 UIPinchGestureRecognizer에서 scale 속성을 설정한다는 것이 었습니다. 이것은 Apple 코드의 버그 일 수 있습니다.

관련 문제