我有一个简单的视图控制器,可以显示UITextView
和UILabel
。控件添加在故事板上,并作为插座连接到正确的视图控制器代码。它们在故事板上填充了文本,并且在测试时它们可以正常工作。
但后来我尝试从superview中删除控件,然后再次将它们添加为子视图,所以基本上我应该处于和之前相同的状态。
视图控制器的代码如下。
@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
?
谢谢!
答案 0 :(得分:0)
确保插座已连接。应填写左侧的灰色圆圈,如下所示:
您可以通过ctrl-dragging再次连接它。您也可以通过检查self.textView
是否为零来确认。