1

我创建了一个类 Word1View,它是 UIView 的子类。在其中我有一个 UILabel testLabel,它是一个属性,并且已在 .m 文件中正确合成。这是 .h 文件。

@interface Word1View : UIView

@property (nonatomic, retain) UILabel *testLabel;
@end

Word1View 类型的属性 word1View 在界面生成器中创建并添加到我的故事板中,并已作为属性添加到我的主视图控制器中:

@interface Board3ViewController : UIViewController
@property (nonatomic, strong) IBOutlet Word1View *word1View;

@end

并已正确连接为 IBOutlet。

在我的视图控制器的 viewDidLoad 方法中是以下代码:

word1View.testLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 30, 10)];
word1View.backgroundColor = [UIColor yellowColor];
word1View.testLabel.text = @"Working?";
[self.view addSubview:word1View];
NSLog(@"Label text is: %@", word1View.testLabel.text);

现在我知道所有这些代码都在工作,因为子视图改变了它的背景颜色,并且 testLabel 得到了正确的文本,因为它是由 NSLog 语句打印出来的。问题是程序运行时 UILabel testLabel DOES NOT APPEAR?我试过 setNeedsDisplay 并没有帮助。任何帮助将不胜感激。谢谢

4

1 回答 1

1

根据我的评论,将标签作为子视图添加到world1View对象。如果您希望它默认出现,您可以在以下初始化程序中执行此操作World1View

-(id)init {
    if ((self = [super init])) {
        self.testLabel = [[UILabel alloc]
            initWithFrame:CGRectMake(10, 10, 30, 10)];
        self.testLabel.text = @"Working?";
        [self addSubview: self.testLabel];
    }
    return self;
}   
于 2013-06-02T22:01:24.663 回答