儘管無法刪除現有的捏手勢識別器,但可以禁用它,然後添加自己的:
// Disable existing recognizer
for (UIGestureRecognizer* recognizer in [_scrollView gestureRecognizers]) {
if ([recognizer isKindOfClass:[UIPinchGestureRecognizer class]]) {
[recognizer setEnabled:NO];
}
}
// Add our own
UIPinchGestureRecognizer* pinchRecognizer =
[[UIPinchGestureRecognizer alloc] initWithTarget:self
action:@selector(pinch:)];
[_scrollView addGestureRecognizer:pinchRecognizer];
[pinchRecognizer release];
然後在
- (void) pinch:(UIPinchGestureRecognizer*)recognizer { .. }
使用
[recognizer locationOfTouch:0 inView:..]
[recognizer locationOfTouch:1 inView:..]
找出如果用戶被水平或垂直地夾持。
這是一個簡單的解決方案。 :)謝謝edsko! – Taka
即使不禁用退出手勢,您也可以添加新手勢。 –
來自遙遠未來的快速評論:在撰寫答案後三個月出現的iOS 5添加了「 - [UIScrollView pinchGestureRecognizer]」,因此您不必進行線性搜索,並希望Apple沒有做任何事情太不正統。 – Tommy