我有自定義的UITableViewCell:可重複使用的TableViewCell異步高度
也有一定的對象(從服務器獲得)與ImageUrl屬性。
任務:需要異步下載圖片(通過翠鳥)。如果圖像不存在 - 隱藏ImageView。 一些工作正常,但:
當圖像開始下載(背景),用戶也可以滾動的tableView,如果圖像不能下載(圖片==無),ImageView的隱藏(需要隱藏/顯示)和scrollView中的contentSize已更改。 - 問題第一(滾動跳轉)
第二:當用戶滾動填充tableView,一些單元格沒有圖像,並且當這個單元格被重用時,Kingfisher也嘗試下載圖像以重用單元格。如果圖像存在 - imageView顯示,像單元格一樣展開。 再次scrollview contentSize改變,結果我們有毛刺跳轉。
P.S.嘗試使用表更新,重新加載行,也使用不同的單元格爲空單元格 - 不成功。也試圖找到解決的SO,但只資助理論:)
有想法(不僅是理論)?
謝謝
P.S.S.基於圖像的硬編碼單元尺寸(有或沒有)。還要更改約束imageView(0或xxx)。如果理解正確的 - 的tableView不知道細胞的大小(因爲設置UITableViewAutomaticDimension)
不是很好的解決方案,但作品。
loadFlag - 不起作用。問題不在「旗」(也試過這個)。問題如果(例如)你有沒有圖像的第一個單元(這個單元很小)。向上滾動,當tableView中的單元格出現時 - 與下一個對象(在數組中的隊列中)重用。但這個對象有圖像(說存儲在「標誌」)。當tableView將此圖像設置爲重用單元格時,單元格會展開,並且scrollView將具有跳躍僞影,因爲scrollViewContentSize將保持更大。 –
@SergeyKrasiuk正如我在第一個問題中所說的,除非你得到你的arrayOfObjects圖像信息,否則你不可能阻止單元格的大小調整,你可以通過某種方式知道是否存在圖像。由於此下載是延遲加載,因此單元格高度總是會有時間延遲,並且除非在下載之前知道是否存在圖像,並且在下載之前設置大小,否則總會存在調整大小的事情 –
基於圖像的硬編碼單元大小(有或沒有) - 工作良好 –