iOS中重新整理單行cell抖動問題

2021-09-07 03:02:06 字數 978 閱讀 7964

由於專案中需要使用自動布局,因此本人採用masonry布局。但在布局之後,螢幕重新整理呼叫reloaddata會間歇性的抖動,體驗及其差。

產生原因:

在使用自動布局之後,uitableviewautomaticdimension 高度自動適應,就是每次計算高度的時候產生閃動,原因是這個自動布局計算cell高度的時候出現問題。

解決方法:

tableview.estimatedrowheight = 1;

tableview.estimatedsectionheaderheight = 0;

tableview.estimatedsectionfooterheight = 0;

經過除錯發現,採用固定高度布局時,此方法有效可行。但在自動布局的情況下,該解決方案會導致cell無法展開,實現高度自適應。

// 宣告單元格高度字典

nsmutabledictionary *cellheightsdictionary;

// **初始化

cellheightsdictionary = @{}.mutablecopy;

// 宣告表的動態行高度,並在單元格中建立正確的約束

tableview.rowheight = uitableviewautomaticdimension;

// 儲存行高

- (void)tableview:(uitableview *)tableview willdisplaycell:(uitableviewcell *)cell forrowatindexpath:(nsindexpath *)indexpath

//給出準確的高度值

- (cgfloat)tableview:(uitableview *)tableview estimatedheightforrowatindexpath:(nsindexpath *)indexpath

這樣便可以完美的解決了。希望對您有幫助!

Tips 避免cache中的抖動問題

直接對映快取記憶體中的衝突不命中 confict miss 衝突不命中在程式中很常見,會導致令人疑惑的問題。當訪問大小為2的冪的陣列時,直接對映高速緩衝中通常會發生衝突不命中。考慮以下計算兩個向量點積的函式 float dotdrop float x 8 float y 8 return sum 假...

iOS中cell的屬性設定

1.系統預設的顏色設定 1 無色 2 cell.selectionstyle uitableviewcellselectionstylenone 3 藍色,也就是系統預設的顏色 4 cell.selectionstyle uitableviewcellselectionstyleblue 5 灰色6...

iOS 在cell中修改imageView的大小

今天發現在cell中修改imageview的大小時,用frame.size 或者是frame之類的都報錯,然後找到一種解決辦法,直接上 cgsize itemsize cgsizemake 40,40 uigraphicsbeginimagecontextwithoptions itemsize,n...