【发布时间】: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