0

我有我的自定义视图:

@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。我可以硬核所需的值 - 但我希望让它像标准控件一样工作 - 我的意思是例如在旋转时自动调整大小等等。

我的误解是什么?

4

1 回答 1

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;
}
于 2013-08-12T22:48:03.163 回答