使用autolayout将子视图添加到tableview

时间:2014-09-03 16:46:38

标签: objective-c uitableview autolayout

我试图使用autolayout向tableview添加子视图,但是当我这样做时,我得到了Assertion失败。

* 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'执行-layoutSubviews后仍需要自动布局.UITableView的-layoutSubviews实现需要调用super。'”

我的代码

UIView *view = [[UIView alloc] init];
[view setBackgroundColor:[UIColor redColor]];
[parentView addSubview:view];

[view setTranslatesAutoresizingMaskIntoConstraints:NO];

    NSLayoutConstraint *c1 = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:parentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0];
    NSLayoutConstraint *c2 = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:parentView attribute:NSLayoutAttributeLeft multiplier:0.0 constant:10.0];
    NSLayoutConstraint *c3 = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:parentView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0.0];
    NSLayoutConstraint *c4 = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:parentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:50.0];

    [parentView addConstraint:c1];
    [parentView addConstraint:c3];
    [parentView addConstraint:c2];
    [parentView addConstraint:c1];

但是如果我将框架设置为视图而没有任何自动布局约束,它可以正常工作。 我无法弄清楚我错过了什么。

0 个答案:

没有答案