我有自定义视图:

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

我有什么误会

最佳答案

如果要在情节提要中添加自定义视图,则不会使用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;
}

关于ios - 自定义 View 中的self.view.size返回[0,0],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18197217/

10-14 20:45
查看更多