2017-07-08 63 views
1

我想知道如果我的數據模型中的某個屬性是nil,從堆棧視圖中刪除視圖的最簡潔方法是什麼。我有一個由原型單元填充的表格視圖。他們是這樣的:如何從表視圖中的堆棧視圖隱藏視圖cellForRow委託方法

enter image description here

第二個標籤的文本包含這可能是nil可選值;我想隱藏標籤,如果它是零。我應該在cellForRow表格視圖單元格方法中還是在CustomTableViewCell類中調用removeArrangedSubview函數?

回答

1

我想隱藏的標籤,如果[可選值]爲nil

你應該標籤的hidden屬性設置爲true而不是從堆棧佈局的安排子視圖列表,以避免增加其移除當單元格被重用於不同的行時返回。

這主要是你在哪裏做的偏好問題。如果你的大部分小區設置代碼是在cellForRow功能,您應該隱藏和取消隱藏從功能標籤,以及:

if let labelText = model.getTextForMyLabel(indexPath.row) { 
    cell.label.text = labelText 
    cell.label.hidden = false 
} else { 
    cell.label.hidden = true 
} 

如果你在代碼標籤文本二傳手您CustomTableViewCell,你可以使用相同的方法設置標籤的hidden屬性及其text

+0

謝謝!非常簡單的問題:每次我更新他們的文本時,標籤是否有一個叫做「text」屬性的setter? – Cesare

+0

@Cesare標籤「text」屬性的setter很有可能檢查當前標籤文本是否與您嘗試設置的新文本相匹配,如果新文本與當前文本相同,則會跳過實際設置。 – dasblinkenlight