【问题标题】:Changing font (or amount of text) on UITextView makes text disappear更改 UITextView 上的字体(或文本量)会使文本消失
【发布时间】:2012-08-17 21:55:51
【问题描述】:

我有一个 UITextView,我将大量文本分配给(~25 行)。如果我没有针对 textview 定义字体,它会正常工作,但是一旦我将字体设置为大于 13 号,那么文本就会完全消失(尽管仍然可以滚动)。

另一件事是,如果我手动缓慢输入文本以到达交叉点,最后一行会被分成两部分,继续输入只会产生空白文本。

就好像文本视图只能包含这么多可见文本,一旦达到,文本就会变成空白。

欢迎提出任何建议。

编辑: 实际上将上面的答案文本复制并粘贴到文本视图中,然后再添加一行就足以使其开始变得不可见。然后,当使用更新的文本(即上面的答案加一行)重新加载文本视图时,它全部不可见。

设置字体大小足以破坏它,只需将 systemFontOfSize: 设置为 14。导致它的实际字体大小取决于文本视图中的文本量。

也使用 ARC。

【问题讨论】:

  • 如果您可以发布一个示例文本字符串,以及您尝试使用的字体(假设他第一个“坏”的字体 - 问题本身的大小 - 我很乐意接受看。只需使用此信息编辑您的问题。另外,是否使用 ARC?
  • 我现在已经为你更新了答案,大卫。
  • textview 是一个outlet,包含在视图中,还是在代码中创建的?在第二种情况下,您需要对其进行强引用。最后,是否可编辑?
  • 它不是一个出口,而是在我自己的自定义 init 方法中的代码中创建的。强大的保留并没有什么不同。是的,它是可编辑的。
  • 好吧,你能发布代码吗?强保留意味着,如果它是一个 ivar 就可以,如果它是一个属性,最好是强而不是弱或分配。每天都有成千上万的人在使用这个控件 - 所以很明显你的有些东西不太合适。

标签: ios uitextview


【解决方案1】:

所以我建议您在 Xcode 中创建一个新的单视图项目,将一个 UITextView 添加到您的视图中,然后像在主项目中一样操作它。你做错了什么——将字体设置为 nil,有人释放了 textView,或者以其他方式破坏了它。发给它的所有消息都必须在主线程上。在您发送到 textView 的任何对象属性之后添加断言。正如你所看到的,巨大的字体巨大的文字对我来说工作得很好,就像我建议你做的那样。我们的想法是从可行的东西开始,不断将代码从您的主项目添加到测试项目,直到您确切地找到导致问题的原因。

【讨论】:

  • 谢谢。当它没有被添加到我自己的子视图中时,我已经设法让它工作。如果它本身就很好,但我将它添加到此代码的右侧github.com/honcheng/PaperFold-for-iOS .. 我敢肯定它有一些时髦的东西,但我无法指出是什么。
猜你喜欢
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2011-05-21
  • 2016-07-04
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
相关资源
最近更新 更多