【发布时间】:2014-07-04 09:56:16
【问题描述】:
我有一个UITableView,它有许多静态单元格。没有原型。
一个单元格为UITextField 和UITextView。我希望根据UITextField 的输入隐藏UITextView。这不是问题。
我的问题是我想调整这两个控件所在的 UITableViewCell 的大小 - 这样当 UITextView 被隐藏时,单元格高度为 30,当它显示时其高度为 70(这使UITextView 完全可见)。
由于它们是静态单元格,我只需将 IB 中的高度设置为 70(最大),因此当 UITextView 隐藏时,单元格中有很多未使用的空间,我想通过将单元格高度更改为 30。
我假设我需要告诉单元格使用类似的东西重绘
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[indexPathOfYourCell] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
但是如何从子视图(UITextField)中获取对单元格的引用?
另外,我如何告诉单元格新的高度?我应该标记它并使用
-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
就像我想要的动态原型尺寸一样?
【问题讨论】:
-
如您所写,您可以添加与所选行相等的标签。您还可以创建 CellTextField 以保留 UITableViewCell 的 NSIndexPath 或保留对父单元格的弱引用。
-
嗨,这不是重复的,因为我还在询问如何在编辑文本框时获取对单元格的引用 - 正如标记的答案中所回答的那样。感谢您的回复!
标签: ios objective-c uitableview heightforrowatindexpath