如何在 UITableViewCell 中使用具有可变高度的 UITextView?

发布于 2024-09-27 12:11:08 字数 177 浏览 2 评论 0原文

我有兴趣创建一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温暖的光 2024-10-04 12:11:08

据我所知,设置表格单元格高度的唯一方法是通过委托 heightForRowAtIndexPath: 方法。要调用此方法,您可以在表上调用 reloadData,但我不确定这会对您正在编辑的 UITextView 产生什么影响。不过值得一试。

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

return 100;
}

要计算返回值,您需要根据当前输入计算出高度,并同时展开文本视图。 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.

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

return 100;
}

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文