如何在View的initWithCoder方法中访问子视图

War*_*pat 0 view subview ios

我有一个包含两个UILabel的自定义视图.我想先定制他们的字体,所以我在initWithCoder方法中做了.

@implementation HomeTitleView
@synthesize ticketLabel;
@synthesize monthLabel;

- (id) initWithCoder:(NSCoder *)aDecoder{
    self = [super initWithCoder:aDecoder];
    if (self) {
        [monthLabel setFont:[UIFactory getFontForKey:@"home_month"]];
        [ticketLabel setFont:[UIFactory getFontForKey:@"home_ticket"]];
    }
    return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.使用调试器,我发现monthLabel和ticketLabel都是零.任何人都知道如何解决这个问题?我应该实现什么回调或方法,以便我可以访问我的两个标签?

Jim*_*Jim 5

你不能这样做.这些观点尚不存在.它们在loadView调用方法时被实例化,这在view首次访问属性时自动发生.如果要在加载后操作视图,请使用正确的方法viewDidLoad.

编辑:那是假设你正在UIViewController上课.如果您正在使用UIView课程,则可以使用awakeFromNibdidAddSubview:.