如何在UITableView中获取特定行的高度

时间:2013-08-13 10:16:12

标签: ios uitableview

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

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

4 个答案:

答案 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)