iOS中scrollToTop無效的解決方案

前言

scrollToTop屬性提供了點擊iPhone狀態(tài)欄頁面回到頂部的功能,極大的方便了開發(fā)者的工作量。但是在使用的過程中,因為頁面的復(fù)雜,經(jīng)常會造成scrollToTop不生效的問題。

下文中提到的UIScrollView是指繼承自或者包含了UIScrollView的View,如UITextView,UICollectionView, UITableView,UIWebView等

首先,在確保scrollToTop = YES或者是scrollViewShouldScrollToTop:代理方法返回的是YES的情況下,如果scrollToTop無效,那么就要檢查下當(dāng)前view上是不是有多個UIScrollView了。

接下來是逐步排查這個問題的步驟:

  1. 嘗試直接查找頁面上的其它UIScrollView,設(shè)置scrollToTop = NO;
  2. 如果第一步已經(jīng)做過,scrollToTop仍然無效,那么就使用分類方法打印出當(dāng)前頁面上的所有scrollToTop = YES的view,并把隱藏的這些UIScrollView的scrollToTop設(shè)置為NO
@interface UIView (UIScrollViewDetect)

- (void)detectScrollsToTopViews;

@end


@implementation UIView (UIScrollViewDetect)

- (void)detectScrollsToTopViews {
    for (UIView *view in self.subviews) {
        if ([view isKindOfClass:UIScrollView.class]) {
            UIScrollView *scrollView = (UIScrollView *)view;
            if (scrollView.scrollsToTop) {
                NSLog(@"%@", scrollView);
            }
        }
        [view detectScrollsToTopViews];
    }
}

@end
  1. 如果找到了影響的UIScrollView,但是view是第三方庫里的,無法修改其scrollToTop的屬性,那么可以使用extension在當(dāng)前類中把私有的UIScrollView的屬性暴露出來,再設(shè)置其scrollToTop屬性,操作方法參考另外一篇文章:
    OC中使用類別Extension調(diào)用私有方法

作者語:
開發(fā)中遇到的大部分問題都有跡可循,碰到問題不要急躁,認(rèn)真分析,逐步突破,最終一定能解決。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,327評論 4 61
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,693評論 6 30
  • 文/粥粥 往事無可回首 余生請多指教 今世愿無背離 來生仍多包涵 熬夜看完《余生,請多指教》 這是近來唯一一本小說...
    張國榮的小迷妹閱讀 1,069評論 2 2
  • 不用心觀察,我常常以為北京只有三個季節(jié),夏秋冬。其中,屬夏天和冬天時間長。其實要不是秋天到處是銀杏耀眼的金黃,步履...
    藜蒿閱讀 356評論 0 1
  • 作者/一尺蜜 1,有火鍋不寂寞 “3、2、1!找一個最愛的深愛的想愛的親愛的人,來告別單身!”2011年11月11...
    西窗燭暖閱讀 721評論 2 15

友情鏈接更多精彩內(nèi)容