25

在我的UITableView中,我使用委托方法为不同的行设置了不同的高度:tableView:heightForRowAtIndexPath:

现在给定一个NSIndexPath,我想获得我之前为特定行分配的高度。

4

4 回答 4

85

You can use this

CGRect frame = [tableView rectForRowAtIndexPath:indexPath];
NSLog(@"row height : %f", frame.size.height);

Using frame.size.height you can get height of particular row

Swift 3

let frame = tableView.rectForRow(at: indexPath)
print(frame.size.height)
于 2013-08-13T10:37:07.797 回答
3

简单使用

表视图:heightForRowAtIndexPath

方法

int row = 1;

int section = 0;

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:section];

float height = [self tableView:tableView heightForRowAtIndexPath:indexPath];

希望这对你有帮助:)

于 2013-08-13T10:36:23.727 回答
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:在as中调用上述函数

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];

}
于 2013-08-13T10:38:24.420 回答
0

通过使用下面的代码,您可以从tableview

 let height = super.tableView(tableView, heightForRowAt: indexPath)
于 2019-08-06T20:51:24.060 回答