[英]Hidden view is visible in custom UITableViewCell on rotate
我有一个 UITableView 和一个作为 NIB 实现的自定义 UITableViewCell。 自定义单元格包括 UILabel 和 UIView(又是新的 email / 消息指示器)。 在cellForRowAt
中,我将标签设置为一些文本并隐藏 UIView 但将其isHidden
属性设置为 false。 结果是一个行列表,其中只有一行文本。 但是,如果我将屏幕旋转到横向,然后再转回纵向,则在横向中不可见但现在纵向显示的几行 UIView 可见。 如果这些行从视图中滚动并返回到视图中,则 UIView 将按预期隐藏。 我可以在一个非常简单的示例中重新创建此问题,其中
UIViewController UITableView 前导=0,尾随=0,顶部=0,底部=0
UITableViewCell UIStackView - 轴=水平,对齐=中心,分布=填充,前导=0,尾随=0,顶部=0,底部=0 UILabel UIView - 宽度=10,高度=10
对这种行为的原因有任何想法吗? 我尝试在cellForRowAt
中设置cell.layoutIfNeeded()
,但没有成功。
根据要求附上cellForRowAt
代码。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell
cell.titleLabel.text = dataSource[indexPath.row]
cell.indicatorView.isHidden = true
return cell
}
它的可重用性问题....在您的TableViewCell
覆盖... prepareToReuse()
.. 并在那里设置默认值...
func prepareForReuse()
如果一个 UITableViewCell object 是可重用的——也就是说,它有一个重用标识符——这个方法在 object 从 UITableView 方法返回之前调用。 出于性能原因,您应该只重置与内容无关的单元格属性,例如 alpha、编辑和选择 state。 在重用单元格时,tableView(_:cellForRowAt:) 中的表视图委托应始终重置所有内容。 如果单元格 object 没有关联的重用标识符,则不调用此方法。 如果重写此方法,则必须确保调用超类实现
在 storyboard 中隐藏指示器视图
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.