我有一个带约束的xib,我的自动布局故事板中有一个viewController,带有一个scrollView,我添加了xib。
我的xib有约束,但是当我将xib添加到自动布局故事板时,出口会改变位置和大小,它正在失去他的约束......
我使用此函数创建xib:
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
nibname=@"myViewXib";
[self addSubview:
[[[NSBundle mainBundle] loadNibNamed:@"myViewXib" owner:self options:nil] objectAtIndex:0]];
[self setNeedsLayout];
}
return self;
}
这是将xib加载到viewDidLoad中的故事板中的功能:
MyViewXib *myView = [[MyViewXib alloc] initWithFrame:CGRectMake(self.scroll.frame.origin.x, self.scroll.frame.origin.y, self.scroll.frame.size.width, self.scroll.frame.size.height)];
[myView setFrame:CGRectMake(width*count++, 0, width, height)];
[self.scroll addSubview:myView];
[self.scroll layoutSubviews];
我的代码有什么问题?为什么约束不起作用?
谢谢!
答案 0 :(得分:0)
您可以将它放在viewDidAppear方法中,而不是在viewDidLoad方法中添加子视图代码,因为视图控制器在viewDidLoad方法中没有任何视图的确切帧。