UITextView 改变高度而不是滚动

发布于 2024-08-27 18:06:10 字数 231 浏览 8 评论 0原文

默认情况下,当文本视图的高度无法容纳太多文本时,UITextView 的 contentView 将变为可滚动。

我想禁用此功能,而是更新 UITextView 的高度以适合文本。我这样做的原因是因为我将 UITextView 添加为 UIScrollView 的子视图,它应该处理滚动,就像在本机邮件应用程序中一样(当您输入文本时,整个视图向上滚动,而不仅仅是文本视图任何

人都有一些想法/之前遇到过同样的问题吗?

By default, the UITextView's contentView becomes scrollable when there is too much text to fit into the textview based on it's height.

I'd like to disable this and instead, update the height of the UITextView to fit in the text. The reason I'm doing this is because I'm adding the UITextView as a subview of a UIScrollView which should handle the scrolling, much like in the native Mail app (when you enter text, the whole view scrolls up, not just the textview.

Anyone got some ideas / has run into the same problem before?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

柠北森屋 2024-09-03 18:06:10

这样做非常简单:

CGRect frame = textView.frame;

frame.size = textView.contentSize;

textView.frame = frame;

这应该设置文本视图的高度以适当地适合其所有内容。

It is very simply done like this:

CGRect frame = textView.frame;

frame.size = textView.contentSize;

textView.frame = frame;

This should set the height of the textview to appropriately fit all of its content.

み格子的夏天 2024-09-03 18:06:10

一些小变化:

-(void)textViewDidChange:(UITextView *)textView {

    CGFloat fontHeight = (textView.font.ascender - textView.font.descender) + 1;

    CGRect newTextFrame = textView.frame;
    newTextFrame.size = textView.contentSize;
    newTextFrame.size.height = newTextFrame.size.height + fontHeight;
    textView.frame = newTextFrame;
}

添加字体高度可以在拼写错误时为自动更正框提供空间。

UITextView 还应该设置为不滚动:

[aTextView setScrollEnabled:NO];

Few little changes:

-(void)textViewDidChange:(UITextView *)textView {

    CGFloat fontHeight = (textView.font.ascender - textView.font.descender) + 1;

    CGRect newTextFrame = textView.frame;
    newTextFrame.size = textView.contentSize;
    newTextFrame.size.height = newTextFrame.size.height + fontHeight;
    textView.frame = newTextFrame;
}

Adding the font height gives room for the autocorrection box when you spell something incorrectly.

The UITextView should also be set to not scroll:

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