0

我有 UITableViewCell 通过将其高度设置为零而变得不可见:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return isCollapsed ? 0 : 50
}

在该单元格内,我从单元格视图的顶部到底部约束每个视图。除了 UIButton 之外的每个视图都有效。但是当单元格的高度为零时,UIButton 文本不会消失。我认为这与 UIButton 文本有关,而不取决于父高度。UIButton 背景颜色在单元格折叠时会消失。我发现的最佳解决方案是改用 UILabel 。但它没有触摸动画。是否有另一种无需手动隐藏按钮的解决方案?

4

2 回答 2

0

斯威夫特 3.0

UIButton是 的子类UILabel。如果您将按钮的高度设置为零,但UILabel高度不为零。您需要隐藏该按钮。然后它不会出现在单元格中,而高度cell为零。

cell.btn.isHidden = true
于 2017-05-17T07:41:11.257 回答
0

当您使单元格的高度为 0 时,子视图将保持其之前分配的高度。因此,子视图也必须从单元格中删除或必须使其 alpha 为 0。

试试看:

cell.contentView.removeFromSuperview()

或者,

cell.contentView.alpha = 0

或者,

通过单独获取单元格的子视图,使 alpha 为零(或删除)它们。

于 2017-05-17T07:41:47.520 回答