在iOS 8及以后的版本,我们可以这样设置tableView,让它自动计算高度
self.tableView.estimatedRowHeight = 44self.tableView.rowHeight = UITableViewAutomaticDimension
但升级到Xcode 7之后发现这个方法对设置为Static Cells的table view就不管用了(探讨了原因)。我们可以通过实现UITableViewDelegate里的方法达到同样的效果,代码如下:
Objective-C:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return UITableViewAutomaticDimension;}- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 44;}
Swift:
override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return 44} override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return UITableViewAutomaticDimension}