我在UITableView
中有3个自定义表格查看单元格。我有一个单元格的高度完美,但其他两个单元格我只是希望它们使用AutoLayout作为高度。
这就是我所拥有的,有没有人对else
声明有另一个想法?:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
id model = self.Model[indexPath.row];
if ([model isKindOfClass:[D self]]) {
ListTableViewCell *cellOne = [tableView dequeueReusableCellWithIdentifier:@"1Cell" forIndexPath:indexPath];
if (!cellOne) {
cellOne = [[ListTableViewCell alloc] init];
FR *fD = (FR *)model;
NSString *title = [NSString stringWithFormat:@"%@", fD.title];
NSString *dateString = [self timeSincePublished:fD.pubDate];
NSString *description = [self removeHTMLTags:fD.description];
NSString *link = [NSString stringWithFormat:@"%@", fD.link];
cellOne.labelHeadline.text = title;
cellOne.labelDescription.text = description;
cellOne.labelPublished.text = dateString;
}
// Make sure the cell's frame is updated
[cellOne setNeedsLayout];
[cellOne layoutIfNeeded];
CGFloat heightOne = [cellOne.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
return heightOne + 2;
} else {
// This is where I need help for other 2 custom cells to just use AutoLayout height
return tableView.rowHeight;
}
现在,return tableView.rowHeight
将返回故事板中设置的硬编码高度,无论单元格中实际存在多少。
应该忽略该高度,只使用AutoLayout。
你知道这样做的方法吗?谢谢!如果需要,很乐意发布任何额外信息 -
答案 0 :(得分:1)
使用自动布局时,您不能使用heightForRowAtIndexPath
。
相反,你可以使用这样的东西:
self.tableView.estimatedRowHeight = 44.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;