0

我有一个包含两个 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

不幸的是,这没有奏效。使用调试器,我发现monthLabel 和ticketLabel 都是nil。任何人都知道我该如何解决这个问题?我应该实现什么回调或方法才能访问我的两个标签?

4

2 回答 2

5

你不能那样做。视图尚不存在。它们在调用方法时被实例化,这在第一次访问属性loadView时自动发生。view如果您想在视图加载后对其进行操作,正确的使用方法是viewDidLoad.

编辑:这是假设您正在与UIViewController班级一起工作。如果您正在使用一个UIView类,您可以使用awakeFromNibdidAddSubview:

于 2012-10-07T18:58:59.430 回答
0

您是否曾经将monthLabel 和ticketLabel 分配给UILabel?就像是:

self.monthLabel = [[[UILabel alloc] init] autorelease];
self.ticketLabel = [[[UILabel alloc] init] autorelease];

如果是这样,您可以使用代码更新您的帖子吗?

于 2012-10-07T18:58:44.063 回答