2017-01-23 76 views
1

我与TableViewController和定制TableViewCell实践动态管理TableViewCell高度。我已经点击显示按钮,就说明问题的选项,这样做后一个问题列表&。通过单击的UIButton

enter image description here

但在移除从上面图片的问题列表视图的间距我已经写了这个代码

-(void)viewWillAppear:(BOOL)animated{ 
    self.tableView.estimatedRowHeight = 40.0; 
    self.tableView.rowHeight = UITableViewAutomaticDimension;} 

和输出就这样产生了之前和之后点击显示按钮。

enter image description here

但我试图让我的动态管理行高度输出点击显示按钮后。

约束:

enter image description here

注:我已经通过Using Auto Layout in UITableView for dynamic cell layouts & variable row heights

走了,但并没有解决我的问题。

谢谢。

回答

2

你约束是不妥当的。而是采用rowHeight财产使用heightForRow方法,因为这个属性被调用一次,但这种方法被称为为每个cell和。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
return UITableViewAutomaticDimension; 
} 

对于约束您在单元中的每个组件都必须有顶部,底部和高度。对于组件的任何人,如果你错过了这个约束的人则有缺陷在UI创建。

有关更多详细信息,请发布您的prototype-cell屏幕快照并显示您给予他们的限制条件。

编辑

勾选上剪辑的StackView bounds属性和其内部四个Button。

enter image description here

这样做后我获得以下的输出:

enter image description here

原因:

StackView不让内部内容是0

如果您还有疑问,我有演示,你可以把它从我的。

有这种类型的问题

  1. 创建两个定制单元,一个问题和其他的选项多了一个途径。
  2. 最初,称重传感器的问题。
  3. 如果用户单击show按钮获取按钮的索引路径并在该索引路径后面加载选项单元格。
  4. 如果用户单击hide按钮,则删除该选项单元格。

注:

  1. 如果一个选择单元能够在一个的tableView时间是负载然后保持在一个变量中选择选项的按钮。
  2. 如果一次可以加载多个选项单元,则使用数组来维护它们。
+0

感谢您的回复。我正在使用'xcode 7.0'和'iOS 9.0',并且找不到'heightForRow'属性。如果你解释我会很感激。 –

+0

确定发布了您的用户界面和约束的屏幕快照,如我在答案的最后几行所述。 –

+0

'rowHeight'总是为我工作,唯一的问题可以是约束。 –