iOS8:可以对静态单元格使用"tableview.rowHeight = UITableViewAutomaticDimension"吗?

cam*_*ase 24 uitableview ios ios8

我有一个UITableView有五个静态单元格.我需要一个单元格的单元格高度自动调整其内容,这是一个UILabel.

有什么办法可以使用..

tableView.estimatedRowHeight = 42.0
tableView.rowHeight = UITableViewAutomaticDimension
Run Code Online (Sandbox Code Playgroud)

..对于带有静态单元格的表格视图,或者这仅适用于具有动态原型单元格的表格视图?

(或者你会推荐其他任何方式吗?)

附加信息

UITableView位于TableViewController中,嵌入到Container View中.

五个静态单元格彼此完全不同,仅在一个应用程序场景中使用,因此我没有看到动态原型和自定义单元格子类的重点.

我像这样更新tableview

-(void) viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [_myTableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)

我向UILabel添加了约束,如下所述:http: //www.appcoda.com/self-sizing-cells/

小智 45

对于iOS 8,我发现您无法执行与动态表格视图单元格相同的策略.

为了自动调整静态单元格的高度,我实现了这两个UITableViewDelegate方法:

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

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 44;
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.


小智 0

我假设我需要告诉单元格使用类似的东西重绘

[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[indexPathOfYourCell] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)

当涉及到动态改变 tableviewcell 的高度时。

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return Yourvalue; //return whatever u want ur cell to have size.
  }
Run Code Online (Sandbox Code Playgroud)