いくつかのサブビューを持つUIViewの単純なサブクラスを作成しましたが、表示できない理由で壊れています。
ストーリーボードビューコントローラーで、UIViewを追加して希望の形にし、カスタムクラスを追加しました。私のサブクラスの内容は以下のとおりです。
@implementation PersonDetailCell
@synthesize button, requiredMarker, textField;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void)layoutSubviews
{
[self setBackgroundColor:[UIColor colorWithRed:87.0f/255.0f green:153.0f/255.0f blue:191.0f/255.0f alpha:1.0f]];
textField = [[DetailTextField alloc] initWithFrame:CGRectMake(10, 0, self.frame.size.width -20, self.frame.size.height)];
[textField setFont:[UIFont fontWithName:@"Helvetica" size:14.0f]];
[textField setTextColor:[UIColor whiteColor]];
[textField setHidden:YES];
[self addSubview:textField];
button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button setHidden:YES];
[self addSubview:button];
requiredMarker = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 4, 22)];
[requiredMarker setBackgroundColor:[UIColor redColor]];
[requiredMarker setHidden:YES];
[self addSubview:requiredMarker];
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
*/
@end
次に、View Controllerコードで、サブクラスをインポートし、そのIBOutletをストーリーボードのビューに接続しました。ビューコントローラのviewDidLoadで、このビューの背景色も設定しようとしましたが、何も起こりません。
私のコードはすべてクラッシュすることなく実行されますが、私の問題は次のとおりです。
ビューコントローラから背景色を設定できません(またはその他のプロパティ)。
アプリを実行すると、ストーリーボードで設定した高さよりも高さが高くなります(幅は問題ありません)が、ビューの高さはどこにも変更されません。
何か案は?どういうわけか間違ったアプローチを使用していますか?
ありがとう。