【问题标题】:UITextView : Changing text colour modifies text positionUITextView :更改文本颜色会修改文本位置
【发布时间】:2012-07-11 03:49:53
【问题描述】:

我有一个 UITextView,里面有一个小文本。它以白色背景上的黑色文本正确显示。但是,当我想将文本颜色更改为黑色以外的颜色时,文本位置会发生变化(好像在文本开头添加了一个空行)。

没有颜色变化或textView.textColor = [UIColor blackColor];

当我换成另一种颜色时,这里是textView.textColor = [UIColor blueColor];

我给出的代码行确实是唯一变化的代码元素,即使背景颜色和文字不同,这是因为它们是随机生成的,在一个完成我的代码的其他部分。 NEVER 文本的内容之前对显示有任何影响,当我更改文本颜色时,它 ALWAYS 看起来像第二张图片。

我对这种行为感到震惊,因为textColor 不应该修改字体颜色以外的任何东西,不是吗?再加上当我更改为 blackColor 时,没有奇怪的行为。

感谢您的帮助...

【问题讨论】:

  • 你所说的“没有古怪的行为”是什么意思?它是像第一个屏幕截图中那样改变位置还是保持在错误的位置但变为黑色?
  • 是的。对 textColor 属性的更改不应该改变太多,而是颜色。恐怕您必须对视图或视图层次结构进行了一些其他更改。显然你还没有意识到那是什么。去寻找它。您可能希望直接对标签(或任何视图)对象进行 NSLog 记录。它很好地描述了自己,包括文本、颜色和字体(我认为)、位置和大小,分别是它的框架。
  • @HermannKlecker2:不碰其他任何东西,如果我评论这个特定的代码行,它会切换到正确的行为(第一张图片),如果我取消评论它的行为就像在第二张图片中。使用 NSLog,没有字体/颜色信息,但框架在两种情况下完全相同。
  • 我认为这两个文本是不同的。那会比第一个更大。我想是的。
  • @R.A 和@Hermann:我已经编辑了我的问题,以便您理解为什么我确定textView.textColor = [UIColor blueColor]; 行是问题的根源。

标签: iphone objective-c ios uitextview uicolor


【解决方案1】:

"the different colours in the background are generated somewhere else" 表示 你在哪里改变颜色?

你正在改变一些东西,比如

a)autoresizing 浏览量(或)

b)Aligning 该视图中的文本(或)

c)Frame textView 的大小可以小于 textview 的font size(或)

d)你的文字是longer than actual size of the frame

我想问你一个问题。 你为什么用UITextView而不是UILabel?? 我问是因为 textview 会带来scrollview,当文本比你的框架大小长时。我希望这可能是你的问题..

【讨论】:

  • 没有自动调整大小,没有对齐,我的 textView 的框架大小足够大并且无论如何都没有改变(我尝试增加 textView 的宽度,但它没有解决问题)。确实,使用 UILabel 似乎没有问题,但是我不能复制/粘贴标签的内容,可以吗?好吧,如果我没有得到进一步的解释,我可能最终会使用 UILabel,谢谢你的提示......
  • 当然你可以从你的 UIlabel 复制粘贴。我确定。
  • 好吧,如果你使用原始的 UILabel,显然你不能从 UILabel 复制:stackoverflow.com/questions/1246198/…。而且我无法让 textView 滚动,但我可以让那种放大镜出现并查看整个文本。
  • 检查@zoul 在那个问题中的答案..我刚刚做到了,我为他工作
猜你喜欢
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 2013-02-04
相关资源
最近更新 更多