簡體   English   中英

Swift中沒有dequeueReusableCellWithIdentifier的自定義表單元格

[英]Custom table cell without dequeueReusableCellWithIdentifier in Swift

我有一個平均大小的表,除了行插入動畫( withRowAnimation )之外,它withRowAnimation正常工作。 我已經覆蓋了它(在堆棧社區的幫助下),其持續時間比原始系統動畫更長,並且效果很好,但是...

因為我將自定義單元格用作可重復使用的單元格-每次滾動時,這種效果就會消失。

因此,我看到的唯一解決方案是停止重用。 我知道這會干擾內存,但是在這種情況下,它是剩下的唯一情況(我知道)。

我的一般問題是,如何在不使用dequeueReusableCellWithIdentifier情況下加載自定義單元筆尖,以便不會發生重用。

謝謝。

您應該使用dequeueReusableCellWithIdentifier,而不要使用它來避免災難。

看一下代碼,當您使一個單元出隊時(無論是否重復使用,大多數情況下都會重復使用),首先要做的就是將該單元中的所有元素設置回原始狀態,以便重用單元格的行為類似於未重用單元格。

我不知道您的動畫/實現是關於什么的,但是這里是我用自定義單元格編寫的一個項目示例:

在我添加的每個單元格中,按鈕可能是1、2、3,...按鈕。 如果我在重用的單元格中什么也沒做,那么我將擁有比預期更多的按鈕,因為舊的按鈕仍會存在...因此,在我的代碼中,使單元格脫離隊列后,我要做的第一件事就是刪除所有按鈕。

let cell = tableView.dequeueReusableCellWithIdentifier("RelatedCell") as! RelatedCell
cell.removeAllActionButtons() 

我的removeAllActionButtons(我的自定義單元格中的方法)方法類似於:

for button in actionButtons {
    button.removeFromSuperview()
}

actionButtons是一個數組,其中包含所有添加到該自定義單元格的按鈕

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM