我有一个简单的视图控制器,它显示一个UITextView
和一个UILabel
. 这些控件被添加到情节提要上,并作为出口连接到正确的视图控制器代码。它们在故事板上填充了文本,并且在测试时可以正常工作。
但是后来我尝试从超级视图中删除控件,然后再次将它们添加为子视图,所以基本上我应该处于与以前相同的状态。
视图控制器的代码如下。
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextView *textView;
@property (weak, nonatomic) IBOutlet UILabel *label;
@end
@implementation ViewController
- (void)viewWillAppear:(BOOL)animated
{
[self.textView removeFromSuperview];
[self.view addSubview:self.textView];
[self.label removeFromSuperview];
[self.view addSubview:self.label];
}
@end
但是下面代码的结果是UITextView
(textView
变量)没有显示,但标签是。如果我在执行代码后打印出内容self.view.subviews
,则在层次结构中并且也具有正确的框架。但是文本根本不可见。self.textView
viewWillAppear
UITextView
我也试过:
- 再次在代码中设置文本
UITextView
在代码中设置背景- 呼唤
setNeedsDisplay
_UITextView
没有任何东西可以UITextView
恢复,即使它存在于内存中。我现在的解决方案是在代码中分配另一个UITextView
,但这是一个慢得多的操作。
那么,这里有什么问题?它是一个错误UITextView
吗?为什么此代码适用于UILabel
而不适用于UITextView
?
谢谢!