我有一个自定义 UIView 子类,它在初始化期间以编程方式添加子视图。我希望这个子视图与自定义 UIView 的宽度相同。
如果我以编程方式添加自定义 UIView,我的代码可以正常工作。但是,当 UIView 通过StoryBoard初始化时,我无法获得自定义 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:之前访问尺寸?
谢谢。