如何在表格视图中更改一个单元格的高度? [复制]

Posted

技术标签:

【中文标题】如何在表格视图中更改一个单元格的高度? [复制]【英文标题】:How can change one cell 's height in tableview? [duplicate] 【发布时间】:2012-12-28 05:47:22 【问题描述】:

可能重复:Define height of one specific table cell

如何在表格视图中更改一个单元格的高度? 我想在表格视图中更改一个单元格的高度,而不是第一次初始化,但单元格也已显示。

【问题讨论】:

@JackHumphries 我不想第一次设置单元格高度。显示单元格后,我想再次更改单元格的高度。是一样的吗? 是的,方法相同。当您准备好更改单元格的高度时,只需调用[self.tableView reloadData][self.tableView reloadRowsAtIndexPaths...] 并在heightForRowAtIndexPath 中传递正确的高度值。 @JackHumphries reload 将清除单元格中已有的内容。是否有任何方法可以更改其高度但不能重新初始化它? 【参考方案1】:

您可以在 tableview:hightOfRowAtIndexPath: 中更改单元格的高度。

例如:

- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    CGFloat retVal =0.0f;

    if(indexPath.section==//the section you want )
    
        if(indexPath.row==//the row you want)
        
            retVal=10.0f;//the height you want.
        
        else
            retVal=50.0f;
    
    else 
        retVal=50.0f;

    return retVal;

【讨论】:

我不想第一次设置单元格高度。显示单元格后,我想再次更改单元格的高度。是一样的吗? @Rob @ZhouQi 你会 (a) 让你的 heightForRowAtIndexPath 检查一些 ivar 是否应该使用标准高度或是否应该使用扩展高度; (b) 一旦你设置了 ivar,你只需调用 reloadRowsAtIndexPaths @Rob reload rows 将清除单元格的内容。 @Rob 我的单元格有一个文本视图,我希望在文本视图中输入一些内容时,文本视图会变成多行。所以单元格的高度也需要变大。 你只需要设置一个BOOL变量。如果你需要改变高度只需设置BOOL和reloadRowsAtIndexPath来改变高度。如果你想根据textview文本改变高度你可以设置textView 的委托方法中的 BOOL(例如:textViewDidChange:)并在您想增加高度时调用 reloadRows..。

以上是关于如何在表格视图中更改一个单元格的高度? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何更改表格视图中单元格的删除动画持续时间? [复制]

动态更改表格视图单元格的高度

如何根据标签文本快速更改表格视图单元格高度?

当单元格的高度不同时,如何在表格视图中获取所有单元格的高度?

更改表格视图单元格高度仅适用于 iPad

动态更改静态表格视图单元格高度