Xcode自定义视图约束在以编程方式更新大小时不会更新

时间:2016-02-15 09:37:36

标签: ios objective-c xcode uiview autolayout

我有一个自定义UIView,它有2个UILabel,我在XIB中设计过。已经为子项设置了正确的约束,使它们正确对齐等。在XIB中,我的设计是基于屏幕宽度为200并且2个标签的约束相应地设置为其超级视图的假设。

-(id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {

    [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil];

    [self addSubview:self.view];
    //_intrinsicContentSize = self.bounds.size; // tried to return this as well
}
return self;
}

XIB Design

现在我以编程方式分配此视图,并将其作为子视图添加到我的视图控制器中。如果我将视图的帧更改为300,则子视图框将更改为300,但具有约束的2个标签仅限于200的宽度。

        vewOneTouch = [[OneTouchView alloc] initWithFrame:CGRectMake(0, CGRectGetMinY(vewBottom.frame)-50, CGRectGetWidth(scwBaseView.frame), 50)];
[scwBaseView addSubview:vewOneTouch];

更改自定义视图框架时,为什么约束条件没有开始,并且更改子视图中所有项目的布局?

View in Simulator after changing subview frames白色区域是Xib中的黄色视图,以编程方式更改了颜色。

0 个答案:

没有答案