【问题标题】:UITextView can't change size with auto layoutUITextView 无法使用自动布局更改大小
【发布时间】:2013-10-25 20:19:47
【问题描述】:

我有一个XIB 文件,其中包含一个以UITextView 作为子视图的视图。这个 textView 高 30px,因为它应该根据它的内容调整大小。

所以我以编程方式设置文本,调用-sizeToFit 并重新配置 textView 的框架及其父视图:

[_textView setText:[contents objectForKey:@"body"]];
[_textView sizeToFit];

CGSize txtSize = _textView.contentSize;
txtSize.height = _textView.frame.size.height;
_textView.contentSite = txtSize;

CGRect superFrame = _textView.superView.frame;
superFrame += _textView.contentSize.height;
_textView.superView.frame = superFrame;

superView 实际上确实可以正确调整大小。此外,在记录文本视图框架和内容大小时,在控制台上看起来还可以(大约 1200 像素高)。

但是 textView 在屏幕上仍然只有 30px 高。也调用-setNeedsLayout 并没有成功。

这可能是什么问题?

【问题讨论】:

    标签: ios uitextview setneedsdisplay contentsize sizetofit


    【解决方案1】:

    这是我几天前遇到的一个错误。如果 UITextView 禁用滚动,无论高度如何,似乎 UITextView 都会切断一部分文本。

    在某些情况下有效的解决方案是:

    [_textView setScrollEnabled:YES];
    [_textView setText:text];
    [_textView setScrollEnabled:NO];
    

    我已向 Apple 报告此错误,但我建议您也这样做。

    【讨论】:

    • 不幸的是,这不是我要寻找的。我想根据它的内容调整 textView 的实际大小。我有一个显示文章的视图。这应该会越来越长。所以我不在textView中滚动,但它是superview
    • 是的,这与我遇到的问题完全相同。我想滚动超级视图,并且由于文本视图上的禁用滚动。我最后使用的解决方案是启用滚动,因为我已经在调整文本视图的大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    相关资源
    最近更新 更多