顯然,iOS 6會嘗試自動處理當手勢識別器和UIButton
處於同一位置時的情況,並且會針對相同的手勢進行激活。處理iOS6中的手勢識別器
這種新的自動處理解決問題,當您想點擊按鈕,而不是激活手勢識別的,但當你想手勢識別行動創建一個新的問題。
在iOS 5中,你可以實現:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
在衝突時動作轉移到UIButton
。
這似乎不適用於iOS 6.此外,反轉此方法的行爲(因爲現在UIButton
具有優先級而不是手勢識別器)將不起作用。
Complete方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIControl class]]){
return NO;
}
return YES;
}
你有一個uigesturerec uiview上有一個uibutton子視圖,並希望手勢識別器觸摸而不是按鈕? – Ahti
是的。實際上,它是在單元格內具有「UIButtons」的「UITableView」,我希望手勢識別器被激活而不是按鈕。 – jturolla
還沒有iOS完成這一切回到它的起源?我總是遇到按鈕下的問題。 –