好的,我知道这里似乎有很多关于这个主题的问题,但是我找不到任何我需要的东西。
我有一个UITableViewCell,我希望能够选择(通过didSelectRowAtIndexPath:
处理触摸)然后通过允许用户开始编辑单元格textLabel的内容来响应该选择。我需要一个标签因为我需要多行文字。
当用户输入越来越多的文字时,我需要增加单元格的高度。
我是否需要继承UITableViewCell
并拥有自己的标签或textView?或者我可以使用已存在的textLabel吗?
请指教!
答案 0 :(得分:1)
我建议你做的,或者至少尝试做你最好的选择,就是为每个单元格创建一个文本字符串数组(NSString)。当然,您知道可以在特定点编辑数组,因此知道您选择的单元格可以让您知道要编辑的字符串。从这里编辑标签文本时,只需调用: [tableView reloadData]
它应该为你更新!
答案 1 :(得分:1)
我有适合您的解决方案,您需要什么。即使我遇到过这个问题&找到了解决方案。请查看此link。您需要在此示例上更多地工作以动态调整单元格
答案 2 :(得分:1)
首先,您应该可以使用计算文本框架
NSString的sizeWithFont:constrainedToSize:lineBreakMode:
方法。
在你的UITableView委托工具中
tableView:heightForRowAtIndexPath:
方法。计算高度
每个单元格中的文本,还包括填充和其他所有内容
可能需要。我也会缓存此值,直到文本更改为止。
UITableViewCell子类。这里有两个变体:
editable
属性)。但我不确定它在桌子内会有多快,我还没有亲自测试过。 我在我的应用中使用了第一个变体。
您可以继承UITextView或使用其委托方法在用户输入内容时更新其高度。
调用以下代码更新动画细胞:
[self.tableView beginUpdates];
[self.tableView endUpdates];