版本記錄
| 版本號(hào) | 時(shí)間 |
|---|---|
| V1.0 | 2022.07.25 星期一 |
前言
做了好幾個(gè)APP,碰到了大大小小的很多坑,以前碰到坑,解決了就結(jié)束了,這里想把自己碰到的坑記錄下來(lái),一來(lái)給自己備查二來(lái)希望可以幫助到大家。感興趣的可以關(guān)注下,也歡迎大家補(bǔ)充留言,感興趣的看上面幾篇文章。
1. 我的代碼我的坑(一) —— 自簽名證書(shū)導(dǎo)致請(qǐng)求取消的問(wèn)題(一)
2. 我的代碼我的坑(二) —— UIImageView動(dòng)畫(huà)點(diǎn)擊后動(dòng)畫(huà)和圖片消失的問(wèn)題(一)
3. 我的代碼我的坑(三) —— iOS9系統(tǒng)WKWebView加載頁(yè)面白板的問(wèn)題(一)
4. 我的代碼我的坑(四) —— iOS12系統(tǒng)自定義漸變色UISwitch手機(jī)橫屏的異常問(wèn)題(一)
5. 我的代碼我的坑(五) —— 不可編輯狀態(tài)的UITextView文本高度大于視圖高度默認(rèn)滾動(dòng)到底部的問(wèn)題(一)
6. 我的代碼我的坑(六) —— UITextField輸入長(zhǎng)度自動(dòng)截取時(shí)漢字和拼音帶來(lái)的末位截取不能正常輸入漢字的問(wèn)題(一)
7. 我的代碼我的坑(七) —— UIImageView做序列幀動(dòng)畫(huà)結(jié)束后沒(méi)有回調(diào)并且“隱藏”(一)
8. 我的代碼我的坑(八) —— iOS 13.1.2 Debug調(diào)試模式系統(tǒng)layoutSubviews中修改frame循環(huán)調(diào)用導(dǎo)致的崩潰(一)
9. 我的代碼我的坑(九) —— 系統(tǒng)鍵盤(pán)拼音全鍵無(wú)法正常聯(lián)想以及輸入漢字高亮區(qū)識(shí)別不計(jì)入長(zhǎng)度計(jì)數(shù)的問(wèn)題(一)
10. 我的代碼我的坑(十) —— iOS9 Xib實(shí)例化的UITableViewCell中UIButton和UISwitch等控件的IBAction點(diǎn)擊無(wú)響應(yīng)的問(wèn)題(一)
11. 我的代碼我的坑(十一) —— macOS Mojave 和 xcode 11.1 (11A1027)環(huán)境下運(yùn)行iphonex以上流海屏xcode install時(shí)xocde崩潰閃退的問(wèn)題(一)
12. 我的代碼我的坑(十二) —— iOS10字體DIN Condense Bold字體顯示不全頂部被切割的問(wèn)題(一)
13. 我的代碼我的坑(十三) —— 狀態(tài)欄高度的動(dòng)態(tài)計(jì)算(一)
14. 我的代碼我的坑(十四) —— Xcode 12.5中React編譯不過(guò)的問(wèn)題(一)
15. 我的代碼我的坑(十五) —— dispatch_once導(dǎo)致的死鎖的問(wèn)題(一)
16. 我的代碼我的坑(十六) —— 關(guān)于無(wú)法驗(yàn)證包完整性的問(wèn)題(一)
17. 我的代碼我的坑(十七) —— 關(guān)于UniversalLink校驗(yàn)不通過(guò)的問(wèn)題(一)
問(wèn)題描述
在做產(chǎn)品的需求的時(shí)候,需要用到分頁(yè)加載的場(chǎng)景,在請(qǐng)求分頁(yè)數(shù)據(jù)以后,需要重新刷新UITableView將分頁(yè)數(shù)據(jù)顯示出來(lái)。
但是產(chǎn)品提出來(lái)一個(gè)需求,就是雙擊導(dǎo)航讓列表滾動(dòng)到頂部。這個(gè)時(shí)候問(wèn)題就出現(xiàn)了,只要是在分頁(yè)的情況下,設(shè)置滾動(dòng)到頂部,UITableView就沒(méi)辦法滾動(dòng)到頂部,就一點(diǎn)點(diǎn)往上湊。需要雙擊很多次才可以最終完全滾動(dòng)到頂部。
不管是設(shè)置contentOffset還是scrollToRect都不管用。我使用的是下面的方法:
[self.tableView setContentOffset:CGPointZero animated:YES];
問(wèn)題解決
線上找了很多方法,最終找到了原因和解決辦法。
原因:當(dāng)
tableView的Cell數(shù)量改變后再次reload,contentOffset的值是通過(guò)預(yù)估各cell的高度及header、footer的高度后計(jì)算得到的,并非準(zhǔn)確的值。知道原理后,解決辦法也就簡(jiǎn)單了,關(guān)閉系統(tǒng)自帶的預(yù)估就好了。estimatedRowHeight是一個(gè)預(yù)估高度,iOS11之前是為0,在iOS11下,這個(gè)值默認(rèn)為44。
落實(shí)到代碼上就如下所示:
_tableView.estimatedRowHeight = 0;
_tableView.estimatedSectionHeaderHeight = 0;
_tableView.estimatedSectionFooterHeight = 0;
參考文章
- iOS解決UITableView的contentOffset捕獲不準(zhǔn)確的問(wèn)題
- 關(guān)于iOS中UITableView自適應(yīng)動(dòng)態(tài)高度的回到頂部錯(cuò)位問(wèn)題解決
后記
本篇主要講述了關(guān)于
UITableView分頁(yè)滾動(dòng)到頂部異常的問(wèn)題,感興趣的給個(gè)贊或者關(guān)注~~~
