簡體   English   中英

如何捕獲UIScrollView或其他的cancallation?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM