我在同一个ViewController中有两个UITableView,一个使用基于UILabel内容大小的动态高度,另一个使用所有单元格为静态高度的UITableView。我使用标签分隔了两个TableView。我试过用这个:
self.tableView1.rowHeight = UITableViewAutomaticDimension;
和
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView.tag == 1) {
return 114.0f;
} else {
if (indexPath.section == 0) {
return 50.0f;
} else if (indexPath.section == 2) {
return 20.0f;
} else {
return 44.0f;
}
}
}
问题在于动态单元格不会动态变化,静态高度单元格最初具有正确的高度,但当它们滚出视图时,它们会更改为单元格的默认高度。
有人可以帮忙吗?
答案 0 :(得分:0)
实施时:
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
你需要实现这个和
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
通常是相同的代码,将其添加到您的保护:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView.tag == 1) {
return 114.0f;
} else {
if (indexPath.section == 0) {
return 50.0f;
} else if (indexPath.section == 2) {
return 20.0f;
} else {
return 44.0f;
}
}
}