【发布时间】:2015-12-16 07:13:35
【问题描述】:
这是我第一次尝试以编程方式创建auto layouts constraints,这是我的代码
- (void)viewDidLoad {
[super viewDidLoad];
UIView *view1 = [[UIView alloc]init];
view1.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:view1];
[view1 setTranslatesAutoresizingMaskIntoConstraints:NO];
NSDictionary *views = NSDictionaryOfVariableBindings(view1);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-[view1]-|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil views:views];
NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[view1]-|" options:0 metrics:nil views:views];
[view1 addConstraints:constraints];
[view1 addConstraints:verticalConstraints];
}
这就是我试图在代码中做的事情。
我遇到了这个巨大的错误
2015-12-16 12:13:59.254 test5b[1138:430691] 视图层次结构不是 为约束做好准备:当 添加到视图中,约束的项目必须是该视图的后代 视图(或视图本身)。如果约束需要,这将崩溃 在组装视图层次结构之前解决。打断 -[UIView(UIConstraintBasedLayout) _viewHierarchyUnpreparedForConstraint:] 进行调试。 2015-12-16 12:13:59.259 test5b [1138:430691] 未准备好查看层次结构 约束。约束: 容器层次结构:> 在容器层次结构中找不到视图:> 该视图的超级视图:;层 = > 2015-12-16 12:13:59.260 test5b[1138:430691] * 由于未捕获的异常“NSGenericException”而终止应用程序, 原因:'无法在视图上安装约束。是否有约束 从视图的子树之外引用一些东西?那是 非法的。约束: 查看:>' * 第一次抛出调用栈:(0x1829f4f5c 0x1975e7f80 0x1829f4ea4 0x183890ef4 0x18804c620 0x18804c428 0x18804c2d0 0x18804c194 0x188056504 0x183890aa0 0x18805330c 0x188056420 0x1000d65f0 0x187f63a0c 0x187fd2fcc 0x187fd2f68 0x1881f494c 0x188200de4 0x1829ac48c 0x1829abdc4 0x1829a9d28 0x1828d8dc0 0x18da2c088 0x187fb2f60 0x1000d6ab8 0x197e128b8) libc++abi.dylib:终止于 NSException (lldb) 类型的未捕获异常
【问题讨论】:
标签: ios objective-c uiview nslayoutconstraint ios-autolayout