如何在UITableViewcell中找到特定单元格高度的高度?

时间:2013-02-03 07:04:25

标签: xcode

我有一个UITableView,细胞有不同的随机高度。每个单元格都包含一个按钮,当按下按钮时,我想获得特定的单元格高度。我该怎么做呢?

4 个答案:

答案 0 :(得分:1)

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

   //Here calculate your height
   return height;

}

现在,无论您想要找到单元格高度

首先找到indexpath

    NSIndexPath *indexPath = [tableView indexPathForCell:cell]

然后找到索引路径上的单元格高度,如下所示

   CGFloat cellHeight = [self tableView:tableView heightForRowAtIndexPath:indexPath];

答案 1 :(得分:0)

heightForRowAtIndexPath不用于获取特定单元格的高度。虽然这是UITableView的DataSource方法,用于在加载时设置UITableViewCell的高度:

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 60.0;  // Set the cell height
}

答案 2 :(得分:0)

我认为你是在追求这样的事情;

-(IBAction)buttonPressed:(id)sender {

    UIButton *myButton = (UIButton *)sender;
    NSLog(@"%0.2f", myButton.superview.frame.size.height);

}

来自文档:“视图可以嵌入其他视图并创建复杂的可视化层次结构。这会在嵌入的视图(称为子视图)和执行该视图的父视图之间创建父子关系。嵌入(称为超级视图)。“

此外,您需要将按钮分配给上述方法。这可以在界面构建器中完成,也可以在cellForRowAtIndexPath中完成,这看起来与此类似:

UIButton *heightButton = (UIButton *)[cell viewWithTag:1];
[heightButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];

答案 3 :(得分:0)

你可以试试这个。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Calculate a height based on a cell
    if (!self.cutomCell)
    {
        self.cutomCell = [self.myTableView dequeueReusableCellWithIdentifier:@"CustomCell2"];
    }

    // Configure the cell
    self.cutomCell.introductionLabel.text   = self.infoArray[indexPath.row];


    // Layout the cell
    [self.cutomCell layoutIfNeeded];


    // Get the height for the cell
    CGFloat height = [self.cutomCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

    return height;
}