[英]How to catch cancallation of UIScrollView or others?
有時,會發生電話等中斷,並會干擾iPhone或iPad中應用的常規行為。
例如,我創建了一個UIScrollView實例並實現了UIScrollView委托方法:scrollViewWillBeginDragging和scrollViewDidEndDragging(以及scrollViewDidEndDecelerating)。
scrollViewWillBeginDragging方法停用了我的應用程序中的所有自定義按鈕。 然后scrollViewDidEndDragging和scrollViewDidEndDecelerating方法激活這些自定義按鈕。 也就是說,當用戶滾動時,所有自定義按鈕都會暫停一段時間。
問題是,當用戶開始拖動並且只是持有UIScrollView實例時,如果我通過按下主頁按鈕和電源按鈕來截取屏幕截圖,則不會調用scrollViewDidEndDragging和scrollViewDidEndDecelerating中的任何一個。 所以應用程序搞砸了。
我在我的UIViewController中實現了一個UIApplicationWillResignActiveNotification方法,但在截取屏幕后沒有調用它。
我如何能夠捕獲任何擾亂常規事件的中斷?
有時,由於中斷,touchesEnd和touchesCanceled也沒有被調用。
謝謝。
我遇到了同樣的問題,並通過使用performSelector:withObject:afterDelay
NSObject的performSelector:withObject:afterDelay
方法擺脫它。
在scrollViewDidScroll中:
[NSObject cancelPreviousPerformRequestsWithTarget:yourController];
[yourController deactivateButtons];
[yourController performSelector:@selector(activateButtons) withObject:nil afterDelay:0.5];
您可以嘗試這種技術並將其與您提到的其他技術結合使用。
希望,那會有所幫助。 祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.