如何在 UITableViewCell 中使用具有可变高度的 UITextView?
我有兴趣创建一个 UITableViewCell,其中包含一个 UITextView,当用户在 UITextView 中输入更多或更少的文本时,它会调整其高度(到某个最大值)。我知道如何将 UITextView 添加到自定义 UITableViewCell - 但如何在用户打字过程中更改 UITableViewCell 的高度?这可以吗?
I am interested in creating a UITableViewCell with a UITextView inside of it, which adjusts its height (to a certain maximum) as the user types more or less text into the UITextView. I know how to add the UITextView to a custom UITableViewCell--but how might I change the UITableViewCell's height as the user is in the process of typing? Is this possible to do?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
据我所知,设置表格单元格高度的唯一方法是通过委托 heightForRowAtIndexPath: 方法。要调用此方法,您可以在表上调用 reloadData,但我不确定这会对您正在编辑的 UITextView 产生什么影响。不过值得一试。
要计算返回值,您需要根据当前输入计算出高度,并同时展开文本视图。 NSString 有一些有用的方法,例如 sizeWithFont:constrainedToSize:lineBreakMode:。它将计算出一个 CGSize,您可以使用它来制作 CGRect 等。
As far as I know the only way to set the height of a table cell is through the delegate heightForRowAtIndexPath: method. To invoke this method you can call reloadData on the table but I'm not sure what effect that would have on the UITextView you are editing. Worth a try though.
To calculate the return value you would need to work out the height based on the current input and expand the text view at the same time. NSString has some helpful methods for this such as sizeWithFont:constrainedToSize:lineBreakMode:. It will work out a CGSize you can use to make your CGRect etc.