如何在表视图cellForRow委托方法中隐藏堆栈视图中的视图

时间:2017-07-08 09:15:23

标签: ios swift uistackview

如果我的数据模型中的某个属性为nil,我想知道从堆栈视图中删除视图的最简洁方法是什么。我有一个由原型单元填充的表视图。它们看起来像这样:

enter image description here

第二个标签文本包含可选值nil;如果它是零,我想隐藏标签。我应该在removeArrangedSubview表格视图单元格方法内部调用cellForRow,还是在CustomTableViewCell类中调用函数?

1 个答案:

答案 0 :(得分: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