iOS13 嵌套的scrollView點擊statusbar無法回到頂部的問題

此方法僅解決有多個scrollView嵌套的情況下,點擊狀態(tài)欄無法回到頂部的問題。在iOS13之前,有兩種方式可以解決此問題:
1、touchBegin 獲取狀態(tài)欄點擊事件
2、添加一個優(yōu)先級高于statusbar的Window,添加點擊事件。
當然此兩種方法都需要自行解決滾動事件,此處不贅述。
但在iOS13之后此兩種方法均失效了,原因是狀態(tài)欄的事件被UIStatusBarManager接管了。
如果僅僅是只是一個scrollView的結(jié)構,點擊狀態(tài)欄回到頂部的操作系統(tǒng)以及替我們完成了,但是若是兩個scrollView嵌套的結(jié)構,系統(tǒng)會無法判斷應該將哪一層的scrollView回到頂部。
解決方法是通過scrollViewShouldScrollToTop代理方法,根據(jù)外層scrollView的contentOffset是否是在頂部來控制此方法的返回值。
代碼如下:

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{
    return 外層的scrollView.contentOffset.y == 0;
}

原理是通過禁用底層scrollView回到頂部的方法,來使系統(tǒng)完成外層的scrollView回到頂部的操作。當外層的scrollView回到頂部之后,再讓底層的scrollView回到頂部。

Done。

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

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

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