如何从表视图中的堆栈视图隐藏视图cellForRow委托方法
问题描述:
我想知道如果我的数据模型中的某个属性是nil
,从堆栈视图中删除视图的最简洁方法是什么。我有一个由原型单元填充的表格视图。他们是这样的:如何从表视图中的堆栈视图隐藏视图cellForRow委托方法
第二个标签的文本包含这可能是nil
可选值;我想隐藏标签,如果它是零。我应该在cellForRow
表格视图单元格方法中还是在CustomTableViewCell
类中调用removeArrangedSubview
函数?
答
我想隐藏的标签,如果[可选值]为
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
。
谢谢!非常简单的问题:每次我更新他们的文本时,标签是否有一个叫做“text”属性的setter? – Cesare
@Cesare标签“text”属性的setter很有可能检查当前标签文本是否与您尝试设置的新文本相匹配,如果新文本与当前文本相同,则会跳过实际设置。 – dasblinkenlight