我正在使用TableViewController
和自定义TableViewCell
进行练习。我已经提出了一个问题清单&点击显示按钮后,它会显示问题的选项。
但是从上面的图像中删除了问题列表视图的间距我写了这段代码
-(void)viewWillAppear:(BOOL)animated{
self.tableView.estimatedRowHeight = 40.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;}
并在点击显示按钮之前和之后输出如下。
但是我点击了显示按钮后尝试动态管理行高度。
约束:
注意:我已经完成了 Using Auto Layout in UITableView for dynamic cell layouts & variable row heights
但是没有解决我的问题。
感谢。
答案 0 :(得分:2)
你的约束不合适。而不是使用rowHeight
属性使用heightForRow
方法,因为此属性调用一次,但为每个cell
调用此方法。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}
对于约束,单元格中的每个组件都必须具有顶部,底部和高度。对于任何组件,如果您错过了这个约束的任何人,那么您的UI中就会出现缺陷。
有关详细信息,请发布prototype-cell
屏幕截图并显示您给予的限制。
修改
勾选剪辑到StackView
及其内部四个按钮的属性。
执行此操作后,我得到以下输出:
<强>原因:强>
StackView不允许内部内容为0
。
如果你仍然怀疑我有演示,你可以从我这里拿走它。
针对此类问题还有一种方法
show
按钮,则获取该按钮的索引路径并在该索引路径之后的表中加载选项单元格。hide
按钮,则删除该选项单元格。注意:强>