我有自定义视图:
@interface MailAttributesView : UIView
{
...
@implementation MailAttributesView
{
UIView *_selectionView;
}
(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
DLog(@"frame.size.width -[%f]; frame.size.height -[%f] ",frame.size.width, frame.size.height);
}
return self;
}
-(void)awakeFromNib
{
[self initView];
}
-(void)initView
{
DLog(@"self.frame.size.width -[%f]; self.frame.size.height -[%f] ",self.frame.size.width, self.frame.size.height);
CGRect sectionSize = CGRectMake(0, 0 , self.frame.size.width, self.frame.size.height);
_selectionView = [[UIView alloc] initWithFrame:sectionSize];
[_selectionView setBackgroundColor:[UIColor clearColor]];
fromField = [[JSTokenField alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, ROW_HEIGHT)];
[[fromField label] setText:@" From:"];
[fromField setDelegate:self];
[_selectionView addSubview:fromField];
在我的故事板中,我创建了一个视图并将其设置为我的自定义视图类。问题在我看来我调用self.view
来定义视图的宽度 - 但它总是返回0
。
我可以硬核需要的值 - 但我希望它能像标准控件那样工作 - 我的意思是例如旋转时自动调整大小等等。
我的误解是什么?
答案 0 :(得分:2)
如果要在故事板中添加自定义视图,则不会使用initWithFrame:
而是使用initWithCoder:
试试这个:
- (id)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder]) {
DLog(@"self.frame.size.width -[%f]; self.frame.size.height -[%f] ",self.frame.size.width, self.frame.size.height);
}
return self;
}