我有一個帶有單元格的標準tableView。iOS:無法在加載表格視圖時更新單元格中的視圖框架
在這些單元格中,有一個視圖需要在滾動時更改框架位置。
我做了一個更新的功能取決於其位置的tableview內的畫面(我使用convertRect(_:toView:)
)
滾動時,它的正常工作,我打電話UIScrollViewDelegate
功能scrollViewDidScroll(_)
內此功能。
我的問題是在加載單元格時設置視圖的初始位置。
爲此,我打電話給我在tableView(_:willDisplayCellforRowAtIndexPath:)
中調用的相同功能,以便在準備顯示時設置視圖的框架。
當我在函數後面記錄視圖框架時,它具有期望的值,但是在屏幕上視圖位於錯誤的位置,就像顯示沒有刷新一樣。
我知道改變一個框架,而加載視圖可能會很棘手,導致這樣的事情,但我試過我可以想到和發現的一切,無論在哪個tableview/cell函數我試圖更新視圖的框架,它不會改變,直到我開始滾動。
對於記錄,我試圖在:
- 主控制器
tableView(_:willDisplayCellforRowAtIndexPath:)
- 主控制器
viewDidAppear()
- 細胞
layoutSubviews()
- 細胞
drawRect()
我也試圖與在約束自動佈局,但沒有任何關係。
我確信我錯過了加載單元格時更新框架的正確位置,但我無法弄清楚。
感謝您的幫助
這太快了這個功能,電池的框架不被初始化但是 – Sylver
你可以先初始化你想要的任何東西,然後調用tableView.reloadData(),並且cellForRowAtIndexPath將被再次調用到每個單元格 –
不,它取決於單元格框架,它不是還沒有在tableView(_:cellForRowAtIndexPath :)。調用reloadData並不能解決任何問題,但是加載所有tableview是沒用的。在最好的情況下,不需要做任何重新加載。 – Sylver