[英]UITapGestureRecognizer not working on iOS9
我有一個使用UITapGestureRecognizers
的應用程序,似乎在iOS9 Beta 2中不起作用。
他們成功地打電話了
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
NSLog(@"shouldReceiveTouch");
return YES;
}
但它沒有擊中任何其他UITapGesture委托方法。
當我在iOS 8上運行的設備上運行相同的應用程序(來自Xcode 7)時,它按預期工作。
還有其他人打過這個嗎?
以下是我初始化UITapGestureRecognizer的方法。
編輯
如果我在代碼中而不是在ViewController xib中創建UITapGestureRecognizer它可以正常工作,那么iOS9中的xib解析就可以了。
_tapGesture2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onMainViewTap:)];
_tapGesture2.numberOfTapsRequired = 1;
_tapGesture2.delegate = self;
[self.view addGestureRecognizer:_tapGesture2];
EDIT2
如果我刪除了XIB中的GestureRecognizer並使用XCode 7再次將其添加回來,它也有效。 當我這樣做時,它將<pressTypeMask key="allowedPressTypes"/>
到UITapGestureRecognizer下的xib中。
似乎iOS9在手勢識別器的xml中查找<pressTypeMask key="allowedPressTypes"/>
行,如果沒有它,則點擊識別器不起作用。 要解決此問題,您可以在代碼中構建識別器,將該行添加到xml中,或刪除並在Xcode 7中重新添加手勢識別器,這將正確地將pressTypeMask
添加到xml中。
我想知道蘋果是否會在沒有XML的那一行的情況下修復iOS9,但是現在,這是一個簡單的修復。
我也遇到了這個問題,特別是當試圖獲取我的按鈕和視圖時,在表格單元格中點擊手勢以響應其布局在xib中定義的點擊。 在iOS 8和10上工作得很好,但不是9.真正的問題是我將它們添加到自定義uiview並將視圖的類分配給我的UITableViewCell子類,而不是在IB中使用Table View Cell
對象。 因此,我沒有將我的子視圖添加到IB對象為您提供的contentView
,從而導致我遇到問題。 修復是重做xib以使用表視圖單元格作為我的根,所以我可以將我的子視圖附加到內容視圖。
實現UIGestureRecognizer的所有可選委托將起作用。
我通過Xcode-7 beta 2檢查了它
我用gesturerecognizer創建了vc,並為屬性和動作創建了出口。 在viewDidload中設置了委托,如下所示:
在調試期間調用的所有方法 - 我都標記為//被調用
我收到了下一個方法的事件:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
print("worked")
// called
return true
}
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool
{
//called
print("worked")
return true
}
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool
{
print("worked")
//called
return true
}
嘗試重新創建我提到的項目並檢查所有的商店和代表
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.