我已經成功實現了UIScreenEdgePanGestureRecognizer,並且我的方法被觸發了,因爲它應該這樣做,但手勢識別器的「邊緣」屬性永久設置爲UIRectEdgeNone,儘管識別了正確的手勢邊緣設置爲UIRectEdgeBottom。UIScreenEdgePanGestureRecognizer邊緣屬性未按預期方式設置
下面是我設置的識別器:
- (void)setupEdgeRecogniser {
UIScreenEdgePanGestureRecognizer* r = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUpFromBottom:)];
r.minimumNumberOfTouches = 1;
r.maximumNumberOfTouches = 1;
r.delaysTouchesBegan = YES;
r.delegate = self;
[r setEdges:UIRectEdgeBottom];
}
這是獲取準確執行的方法,當我想到:
- (void)swipeUpFromBottom:(UIScreenEdgePanGestureRecognizer*)gestureEvent {
// fault occurs here! gestureEvent.edges is always UIRectEdgeNone
if (gestureEvent.edges == UIRectEdgeBottom) {
// do some stuff
}
}
這是非常簡單的,但我需要測試邊緣屬性以查看哪個邊緣被識別,上面的示例僅顯示問題。我的實際代碼庫在每個邊緣檢測到,然後我需要進一步分解。
很明顯,我可以通過觸發不同的方法來解決這個問題,但我不希望在這種情況下。
有誰知道爲什麼這個屬性沒有設置我會如何預期?
非常感謝您的幫助。
很酷,謝謝。我設置了個人識別器,但希望它們都指向相同的方法。我已經按照你的建議分解了這個問題,在我的腦海中,這只是一個多餘的東西,但是現在沒有關係。 – 2014-10-27 17:45:02
屬性名稱是'邊緣',並有'UIRectEdgeAll'。 Apple的文檔中沒有任何內容。 Apple給了什麼? – bejado 2017-11-27 05:45:12