在我的UITableView
中,我使用委托方法为不同的行设置了不同的高度:tableView:heightForRowAtIndexPath:
现在给出NSIndexPath
,我想得到我之前为特定行分配的高度。
答案 0 :(得分:69)
您可以使用此
CGRect frame = [tableView rectForRowAtIndexPath:indexPath];
NSLog(@"row height : %f", frame.size.height);
使用frame.size.height
可以获得特定行的高度
Swift 3
let frame = tableView.rectForRow(at: indexPath)
print(frame.size.height)
答案 1 :(得分:4)
简单使用
的tableView:heightForRowAtIndexPath
方法
int row = 1;
int section = 0;
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:section];
float height = [self tableView:tableView heightForRowAtIndexPath:indexPath];
希望这对你有所帮助:)。
答案 2 :(得分:3)
-(CGFloat)getHeightAtIndexPath:(NSIndexPath *)indexPath{
if(indexPath.row == 0)
return 20.0;
else if(indexPath.row == 4)
return 40.0;
return 50.0; //Default
}
将tableView:heightForRowAtIndexPath:
中的上述功能调用为
return [self getHeightAtIndexPath:indexPath];
您可以使用相同的功能对特定单元格内的按钮执行按钮单击操作,并具有button.tag=indexPath.row
-(IBAction)btnClick:(id)sender{
UIButton *btn=(UIButton *)sender;
NSIndexPath *indexPath=[NSIndexPath indexPathForRow:btn.tag inSection:0];
CGFloat height=[self getHeightAtIndexPath:indexPath];
}
答案 3 :(得分:0)
通过使用以下代码,您可以从tableview
中获取像元高度
let height = super.tableView(tableView, heightForRowAt: indexPath)