NIBファイルからロードしているUIViewのサブクラスがあります。私のNIBファイルには、クロックと呼ばれるUIButtonとIBOutletが含まれています
@property (strong, nonatomic) IBOutlet UIButton *clock;
インターフェイス ビルダーの時計ボタンに設定されたテキストが表示されます。しかし、initWithCoder から追加した他のサブビューはそうではありません。どうしてこれなの?
.h ファイル
@interface TWTimerView : UIView
@property (strong, nonatomic) IBOutlet UIButton *clock;
@property (strong, nonatomic) UIImageView *circle;
@property (strong, nonatomic) UIImageView *pointer;
@property (strong, nonatomic) UIImageView *tick;
@property (strong, nonatomic) UIImageView *circleGlow;
@property (strong, nonatomic) UIImageView *pointerGlow;
@property (strong, nonatomic) UIImageView *tickGlow;
@end
.m ファイル
@implementation TWTimerView
-(id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if(self) {
self.backgroundColor = [UIColor clearColor];
_circle = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"circle"]];
_pointer = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pointer"]];
_tick = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tick"]];
[_clock addSubview:_circle];
[_clock addSubview:_pointer];
[_clock addSubview:_tick];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
TWTimerView *view= [[[NSBundle mainBundle] loadNibNamed:@"TimerView" owner:self options:nil] objectAtIndex:0];
[self addSubview:view];
}
return self;
}
@end
ありがとうございました!