저는 iOS5에서 일하고 있습니다. 분명히 scrollView.pinchGestureRecognizer를 사용하여 UIScrollView의 내부 집기 인식기를 제어하거나 적어도 억제 할 수 있어야합니다.iPhone iOS 확대/축소를 사용하면 UIRotationGestureRecognizer에서 UIScrollView를 작동시키는 방법은 무엇입니까?
그러나 내 코드가 작동하지 않는 것 같습니다. 인식기는 클래스를 대리자로 취급하지 않으며 회전 제스처 인식기가 실패 할 때까지 기다리지 않습니다. 회전 제스처를 우선 순위로 만들기 위해 무엇을 할 수 있습니까? 그 후에 꼬집음이 고려됩니까?
좀 더 정확히 말하자면, 나는 계속해서 회전하고 확대 된 뷰가 왼쪽 아래 모퉁이로 "화면에서 벗어났다"는 것입니다. 결코 다시는 볼 수 없습니다.
-(void)setup scrollViews
{
[tempScrollView.pinchGestureRecognizer requireGestureRecognizerToFail:rotationRecognizer];
tempScrollView.pinchGestureRecognizer.delegate = self;
tempScrollView.maximumZoomScale = 4.0;
tempScrollView.minimumZoomScale = 0.25;
//
tempScrollView.delegate = self;
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if([gestureRecognizer isEqual:rotationRecognizer])
{
NSLog(@"Rotation gesture");
}else {
NSLog(@"Other gesture: %@", [gestureRecognizer class]);
}
return YES;
}
- (IBAction)rotateView:(id)sender {
if([sender isKindOfClass:[UIRotationGestureRecognizer class]])
{
UIRotationGestureRecognizer* recognizer = sender;
float recognizerRotation = [recognizer rotation];
CGAffineTransform transform = CGAffineTransformMakeRotation(recognizerRotation);
activeView.transform = transform;
}
}