[英]dynamic height of UITableViewCell using UIStackView
在很长一段时间里,我一直在努力为UITableViewCells运行获得动态行高计算。
StackView(固定到UITableViewCells contentView的边缘)应该允许我通过操纵StackView中的Views的隐藏属性来控制单元格的高度(很像这里显示的: https ://stackoverflow.com/a/36250618 / 606730 )
我在viewContoller中添加了动态高度的强制设置,如下所示:
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 44;
我没有覆盖heightForRowAtIndexPath,因为这是我想要自动布局来做魔术的地方。
我的问题是,当tableView首次加载或tableview滚动时,单元格没有被正确占用。 但是当我按下单元格内部时,高度计算确实有效,并且所有单元格都以正确的高度显示。
我已经覆盖了UITableViewCell的setSelected,如下所示:
-(void)setSelected:(BOOL)selected animated:(BOOL)animated{
[UIView setAnimationsEnabled:NO];
[super setSelected:selected animated:animated];
self.viewInsideStackView.hidden = !selected;
[UIView setAnimationsEnabled:YES];
}
当tableview加载或滚动每个单元格时调用它。 操作self.viewInsideStackView.hidden应该使堆栈视图重新计算它的高度。 但这不起作用。 我也试过调用layoutIfRequired
但是在我按下一个单元格之前仍然出现错误的大小。
尝试将堆栈视图的间距值设置为0以外的值。我相信这将有助于iOS正确计算单元格的高度,使tableview工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.