2017-07-08 55 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