我有我的自定义 View :
@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];
在我的 Storyboard中,我创建了一个 View 并将其设置为我的自定义 View 类。问题是在我看来我调用 self.view
来定义 View 的宽度 - 但它总是返回 0
。
我可以确定所需的值 - 但我希望它像标准控件一样工作 - 我的意思是例如旋转时自动调整大小等等。
我有什么误解?
最佳答案
如果您要在 Storyboard中添加自定义 View ,则不会使用 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/