我有UITableViewCell的子類,我希望在事件發生時提供一些自定義動畫。我一直在努力弄清楚爲什麼我繼續接收相同的動畫(我假設UITableViewRowAnimationFade,單元格會消失,而下面的單元格會滑動),最後我決定深入研究這個問題。我發現,當我將單元格的大小設置爲小於320(或者我假設它完全等於當前屏幕的大小)時,它將回退到此默認動畫。如果寬度小於屏幕大小,UITableViewCell無法正常動畫
我的自定義單元格就像是一個浮動框(我有每節1個細胞,有許多段),我把它像這樣
self.frame = CGRectMake(5, self.frame.origin.y, 310, self.frame.size.height);
self.contentView.frame = CGRectMake(0, 0, 310, self.frame.size.height);
但每次我得到默認的動畫。如果我將其更改爲
self.frame = CGRectMake(5, self.frame.origin.y, 320, self.frame.size.height);
self.contentView.frame = CGRectMake(0, 0, 320, self.frame.size.height);
不同的動畫工作得很好。
有沒有人有任何線索爲什麼會這樣?我想知道它是否打算以這種方式工作,我需要改變我的單元格設置的方式或者是否有解決方法。
謝謝。
編輯:截屏
我不確定混淆單元格的框架或單元格的contentView框架是個好主意。爲什麼不把自己的視圖添加到單元格的contentView?然後,您可以根據需要調整視圖的大小。也許這會有所幫助。 – rmaddy
我的確確實生成了一堆我自己的視圖,並將它們添加到contentView中,但正如我之前所說的,我試圖使單元格自己成爲浮動框。你想讓我上傳一張他們看起來像是什麼的屏幕截圖,以供進一步澄清。 – TheJer
我打算提供@ rmaddy的解決方案,但現在沒有理由。使單元格的contentView透明,不要使用它的文本標籤等,並將你的視圖添加到contentView。這是如何完成的。人們浪費大量時間嘗試修改單元本身,Apple最終會覆蓋你正在做的事情。我現在正在處理這個完全相同的問題 - 子視圖將動畫移動等。在系統內工作,它會很快落實到位。此外,隆達rmaddy的評論(就像我做的那樣!) - 它是最好的建議! –