0

2つの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クラスで作業している場合は、awakeFromNibまたはを使用できますdidAddSubview:

于 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 に答える