9

视图中有一个 UITextView,视图控制器以 Modal 样式显示。在我的 viewDidLoad 方法中,我设置了这个 UITextView 的文本,但是没有显示文本。下图显示了错误。文字颜色为黑色

奇怪的是,当我在文本视图中长按或在键盘上点击 [return] 时,文本变得可见。我注意到的一件事是,仅当我设置的文本长于 UITextView 框架宽度时才会发生此错误,并且最后一个单词没有损坏,例如 long url 。

我认为问题可能是自动换行无法正常工作

提前致谢。

在此处输入图像描述

代码如下:

UITextView *myTextView = [[UITextView alloc]initWithFrame:CGRectMake(10, 10, 520, 220)];
myTextView.textColor = [UIColor blackColor];    
myTextView.font = [UIFont systemFontOfSize:20];
myTextView.layer.cornerRadius = 5;
myTextView.delegate = self;
myTextView.text = @"long text should some like http://stackoverflow.com/posts/11200726/edit";

[self.view addSubview:myTextView];
[myTextView release];

已解决。在 viewDidLoad 方法中,添加以下代码:

CGRect tempFrame = myTextView.frame;
[myTextView setFrame:CGRectZero];
[myTextView setFrame:tempFrame];
4

6 回答 6

6

将 UITextView 子类化为您自己的类,比如 MyUITextView:UITextView。

在屏幕外初始化它

[[MyUITextView alloc] initWithFrame:CGRectZero]

在 MyUITextView 中覆盖该方法

-(void)willMoveToWindow:(UIWindow *)newWindow

并在其中将 self.frame 设置为适当的值。

这对我有用!

于 2012-07-02T21:38:18.683 回答
0

我认为问题在于:

self.view

尝试在顶部添加此代码行

self.view = [[[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];

如果没有帮助,请尝试删除此代码行

myTextView.layer.cornerRadius = 5;
于 2012-06-29T23:43:39.997 回答
0

我认为在这种情况下, viewDidLoad 在 modelViewController 出现之前被调用。

  • 在 modalViewController 出现后设置文本。
  • 如果这也不起作用,那么在呈现模型之后,调用一个方法来显式设置文本。
于 2012-06-28T06:59:31.967 回答
0

检查您的视图层次结构。您可能在该视图上方添加了另一个 textView。

于 2012-06-28T11:32:18.667 回答
0

尝试更改 textView 的背景颜色。它必须出现是在那里添加了 UITextView。并确保您没有在 UITextView 上方添加另一个视图作为子视图。如果 textColor 为黑色,则它必须是可见的,除非您更改属性,否则默认情况下自动换行。如果添加,请尝试检查 XIB 中的属性设置,如果以编程方式添加,请显示代码。

于 2012-06-29T12:14:16.563 回答
0

你确定文字颜色是黑色的吗?还要确保图像位于视图层次结构中的 textView 后面。TextView 自动处理自动换行。

于 2012-06-26T04:22:59.747 回答