Проблема
Кажется, я не могу внедрить Auto Layout в свой существующий проект.
Подробности
Раньше у меня была такая же проблема, как и в этом вопросе presentViewController: сбой на iOS ‹6 (AutoLayout), но ни один из предоставленных ответов не был для меня решением: я использую все представления раскадровки без xib. Моя настройка «Использовать автоматический макет» уже отключена, и я использую только 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)
SIGABRT
?EXC_BAD_ACCESS
? Или что? - person   schedule 25.12.2012SIGABRT
, и когда я искал решения, были включены точки останова по исключению. - person Rob Caraway   schedule 26.12.2012