初期化中にプログラムでサブビューを追加するカスタム UIView サブクラスがあります。このサブビューをカスタム UIView と同じ幅にしたいと考えています。
プログラムでカスタム UIView を追加すると、私のコードは正常に動作します。ただし、StoryBoardを介して UIView を初期化すると、カスタム UIView の幅を取得できません。
// Init programatically
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSLog (@"view: %f", self.frame.size.width); //WILL return width
NSLog (@"view: %f", self.bounds.size.width); //WILL return width
}
return self;
}
// Init from storyboard
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
NSLog (@"view: %f", self.frame.size.width); //Returns 0
NSLog (@"view: %f", self.bounds.size.width); //Returns 0
}
return self;
}
initWithCoder: が StoryBoard によって実行されると、UIView のフレームと境界がすべて 0 として返されます。initWithCoder内でUIView のディメンションにアクセスする方法はありますか?? または、少なくともdrawRect: が呼び出される前に寸法にアクセスしますか?
ありがとう。