我必须根据单元格中的图像数量使UITableViewCell的高度动态化。
答案 0 :(得分:1)
在viewDidLoad()
中添加以下代码行:
tableView.estimatedRowHeight = 200.0
tableView.rowHeight = UITableViewAutomaticDimension
其中estimatedRowHeight是您要为UITableViewCell设置的最大高度。
此外,添加此委托方法并返回UITableViewAutomaticDimension
:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}
答案 1 :(得分:0)
将UITableView的rowHight属性设置为UITableViewAutomaticDimension,并将估计的行高设置为最常见的高度。然后在您的单元格布局中确保所有可视元素之间存在垂直约束,并且单元格将正确布局。垂直约束应该类似于:
V:|-(5)-[imageOne]-[imageTwo]-|
“|”是单元格的内容视图。
答案 2 :(得分:0)
实施委托方法:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath (NSIndexPath *)indexPath
答案 3 :(得分:0)
@interface yourController : UIViewController<UITableViewDelegate,UITableViewDataSource>
在视图中设置委托加载了
- (void)viewDidLoad {
[super viewDidLoad];
tableview.delegate=self;
tableview.dataSource=self;
}
现在表格视图单元格的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 40;//your value
}
答案 4 :(得分:0)
在单元格中
- (CGFloat)cellHeight {
[self layoutIfNeeded];
return CGRectGetMaxY(_imageview.frame) + 10;
}
imageView是单元格中的最后一个视图。它只需要lastView的lastView
控制器中的
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
OJTopicRootCell *cell = (OJTopicRootCell *)[self tableView:tableView cellForRowAtIndexPath:indexPath];
return cell.cellHeight;
}
答案 5 :(得分:0)
使用estimatedHeight方法快速计算猜测值,这将允许表的快速加载时间。 如果实现了这些方法,则会延迟上述-tableView:heightForXXX调用,直到准备好显示视图,因此可以在那里放置更昂贵的逻辑。 - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(7_0); - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForHeaderInSection:(NSInteger)section NS_AVAILABLE_IOS(7_0); - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForFooterInSection:(NSInteger)section NS_AVAILABLE_IOS(7_0);