繁体   English   中英

使用UIStackView的UITableViewCell的动态高度

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM