當使用moveRowAtIndexPath:toIndexPath:
到移動UITableViewCell
,我使用estimatedRowHeight
和UITableViewAutomaticDimension
時,當電池從可見狀態看動畫的動畫毛刺到不可見狀態。的UITableViewCell動畫的bug`moveRowAtIndexPath:toIndexPath:`,而使用`estimatedRowHeight`和`UITableViewAutomaticDimension`
如果我通過實施tableView:heightForRowAtIndexPath:
明確設置單元格的高度,問題就會消失。該問題僅在源和目標索引路徑分別可見和不可見時纔會顯示。當單元格移動到另一個可見的索引路徑時,動畫將按預期行爲。
我創建了一個樣本項目來說明效果:https://github.com/timarnold/Table-Cell-Sizing-Bug
http://www.openradar.me/19156703
編輯
@rdelmar指出我的問題實際上並沒有提出一個問題。
有誰知道解決此錯誤的方法並解決此問題?或者我做錯了什麼?
編輯2014年12月8日
我用我的蘋果開發者提供的支持票一個詢問有關此問題與蘋果。他們確認這是一個錯誤(訪問http://www.openradar.me/19156703來欺騙),但沒有提供任何解決方法。
你知道如何解決這個問題,那麼你的問題是什麼?我認爲這是一個「你得到你付出的代價」的例子(付出是時間和代碼的複雜性)。這和滾動到特定索引路徑的問題是估計高度被使用的方式的結果,所以我認爲你不能修復它(看看蘋果是否可以修復它,而不犧牲速度優勢使用估計的高度)。您可以通過提供更準確的高度估計值來最大限度地降低影響(儘管如果您的高度變化很大,那麼這將不會有多大幫助)。 – rdelmar 2014-12-05 16:59:59
好吧,這不是一個問題,因爲它是一個問題的文檔和對潛在解決方法的請求(我想我的請求應該更明確;將編輯問題)。我認爲把這種行爲歸類爲錯誤是公平的,但是,因爲重現項目相當簡單並且使用了所有庫存組件和功能。 – 2014-12-05 17:03:59
我不知道我是否會把它稱爲一個錯誤,或者只是蘋果公司在速度和正確性之間權衡的結果。這是一種適用於某些情況的技術,但不是全部。我認爲唯一的解決辦法是計算高度「老式」的方式 - 我希望我錯了,因爲當他們工作時,新的自動調整細胞非常棒。 – rdelmar 2014-12-05 17:12:02