问题
我似乎无法在我现有的项目中采用自动布局。
细节
我之前遇到了与这个问题一样的问题presentViewController: crash on iOS <6 (AutoLayout)但提供的答案都不是我的解决方案:我正在使用所有没有 xibs 的情节提要视图。我的“使用自动布局”设置已关闭,我只使用 iOS 6。
我的视图控制器最初崩溃了,所以我设置了要延迟添加的约束,现在我的应用程序在任何addConstraints:
调用期间都会崩溃。最糟糕的是,它不会告诉我为什么。
代码
我将链接我的代码,但它非常简单。
-(void)addAllConstraints
{
NSDictionary * views = NSDictionaryOfVariableBindings(_memoryImage, _peopleView, _contentHolder, _commentsTableView);
NSArray * constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[_memoryImage]-50-[_peopleView]-0-[_contentHolder]-0-[_commentsTableView]" options:0 metrics:nil views:views];
NSLog(@"Views %@, Constraints %@", views, constraints);
[_peopleView addConstraints:constraints];
[_memoryImage addConstraints:constraints];
[_contentHolder addConstraints:constraints];
[_commentsTableView addConstraints:constraints];
}
应用程序在_peopleView
调用 addConstraints 时崩溃。视图和 NSLayoutConstraints 都已成功创建。
有任何想法吗?谢谢你,节日快乐。
编辑:
添加崩溃日志以显示没有显示任何有用的信息:
2012-12-25 10:40:13.936 -----[4955:907] Views {
"_commentsTableView" = "<UITableView: 0x1eb6be00; frame = (0 372; 320 100); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x1e51ce00>; layer = <CALayer: 0x1e51cee0>; contentOffset: {0, 0}>";
"_contentHolder" = "<UIView: 0x1e5c6590; frame = (0 270; 320 112); layer = <CALayer: 0x1e5c27f0>>";
"_memoryImage" = "<UIButton: 0x1e5c4aa0; frame = (0 0; 320 280); opaque = NO; layer = <CALayer: 0x1e5c4b60>>";
"_peopleView" = "<UIView: 0x1f0ceea0; frame = (0 230; 320 50); layer = <CALayer: 0x1f0cf790>>";
Constraints (
"NSLayoutConstraint:0x1e51a880 V:[UIButton:0x1e5c4aa0]-(50)-[UIView:0x1f0ceea0]",
"NSLayoutConstraint:0x1e5ba4e0 V:[UIView:0x1f0ceea0]-(0)-[UIView:0x1e5c6590]",
"NSLayoutConstraint:0x1e51b860 V:[UIView:0x1e5c6590]-(0)-[UITableView:0x1eb6be00]"
)
}
(lldb)