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