【问题标题】:Weird thing occurs when using sizetofit of a UITextView in IOS7在 IOS7 中使用 UITextView 的 sizetofit 时会发生奇怪的事情
【发布时间】:2013-09-26 13:17:31
【问题描述】:

当我在 IOS7 模拟器上测试我的应用程序时。 有时我发现当我使用sizeToFitUITextView 时很奇怪。 sizeToFit 之后的框架看起来是对的,但文字只能部分显示,就像下面的照片一样。 (灰色区域代表UITextViewsizeToFit之后的新框架,整个句子应该是“这两者之间的关系很紧张。”)

UITextView 文本是通过属性文本设置的。 似乎问题只出现在某些句子上,大多数句子都可以。

我多次遇到这个问题,但仍然无法解决。 任何帮助将不胜感激。谢谢。

更新:

最后我以一种丑陋的方式解决了这个问题。我重置了 textView 的文本。

NSString *text = textView.text;
textView.text = @"";
textView.text = text;

现在它可以显示 sizeToFit 之后的全部内容。 我认为这似乎是 IOS 7 的错误。

【问题讨论】:

  • 增加Textview框架高度。
  • 我已经将 UITextView 的背景颜色设置为灰色。 (上图的灰色区域)。 Textview 框架高度足以显示整个文本。
  • 也许 [textView setNeedDisplay] ?
  • 致凯尔方,感谢您的回复。我尝试了 setNeedDisplay,但它不起作用。
  • 您找到解决方案了吗?我也有同样的问题...

标签: uitextview ios7 sizetofit


【解决方案1】:

我有同样的问题,我花了一段时间才弄明白,你只需要调整 文本容器

[textview sizeToFit];
[textview.textContainer setSize:textview.frame.size];

【讨论】:

  • 很棒的发现,为我节省了很多时间。
【解决方案2】:

在 IOS7 中注意到 sizeToFit 也无法正常工作 - 也许该解决方案也可以帮助您,需要额外的 layoutIfNeeded

[UITEXTVIEW sizeToFit];
[UITEXTVIEW layoutIfNeeded];
[UITEXTVIEW setTextContainerInset:UIEdgeInsetsMake(0, 0, 0, 0)];

【讨论】:

  • 这是换行而不是换行的区别 - 已保存! - 感谢并感谢 Apple 需要数天才能解决的默认填充/边距 :)
【解决方案3】:

您是否在界面生成器中检查了“剪辑子视图”?

尝试取消选中它或将此属性设置为“否”。

【讨论】:

  • 我通过编码创建 UITextView 而没有使用界面构建器。我也找不到 clipSubviews 属性。你能给我一些提示吗?
  • 这可以通过设置clipsToBounds = NO在代码中完成,但这似乎并不能解决问题。
【解决方案4】:

试试这个它对我有用。

[textView setTextContainerInset:UIEdgeInsetsMake(0, 0, 0, 0)];

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 2020-02-20
    相关资源
    最近更新 更多