2013-03-29 2 views
0

Делаем полнокадровый подвид, (кадр подвида в = SuperView Границы)NSLayoutConstraint Ошибки: сделать полные подтаблицы

Я сделал расширение как следующего

[self addConstraints:[NSLayoutConstraint 
          constraintsWithVisualFormat:@"H:|-0-[subview]-0-|" 
          options:NSLayoutFormatDirectionLeadingToTrailing 
          metrics:nil 
          views:NSDictionaryOfVariableBindings(subview)]]; 
[self addConstraints:[NSLayoutConstraint 
         constraintsWithVisualFormat:@"V:|-0-[subview]-0-|" 
         options:NSLayoutFormatDirectionLeadingToTrailing 
         metrics:nil 
         views:NSDictionaryOfVariableBindings(subview)]]; 

Но во время выполнения ошибки occus, показали следующее ошибка.

"<NSAutoresizingMaskLayoutConstraint:0x1001bb700 h=--& v=--& H:[IUView:0x10015dcc0(960)]>", 
"<NSLayoutConstraint:0x1001911d0 H:|-(0)-[IUBGView:0x1001783f0] (Names: '|':IUView:0x10015dcc0)>", 
"<NSLayoutConstraint:0x1001910e0 H:[IUBGView:0x1001783f0]-(0)-| (Names: '|':IUView:0x10015dcc0)>", 
"<NSLayoutConstraint:0x10017bbf0 H:|-(0)-[NSImageView:0x100160050] (Names: '|':IUBGView:0x1001783f0)>", 
"<NSLayoutConstraint:0x10015d7f0 H:[NSImageView:0x100160050]-(0)-| (Names: '|':IUBGView:0x1001783f0)>", 
"<NSAutoresizingMaskLayoutConstraint:0x1001a6a80 h=--& v=--& H:[NSImageView:0x100160050(0)]>" 

Will attempt to recover by breaking constraint

Set the NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have -[NSWindow visualizeConstraints:] automatically called when this happens. And/or, break on objc_exception_throw to catch this in the debugger.

Можете ли вы объяснить, что я пропустил?

+1

Поиск ** «Будет пытаться восстановить с помощью ограничения ограничений» ** на StackOverflow возникает более 40 похожих вопросов .... вы считали, что объясните в своем вопросе, что вы пробовали до сих пор, и почему все эти дон Не применимо ли ваше дело? – Jay

ответ

1

Похоже, что вы не переворачиваете функцию «translatesAutoresizingMaskInotConstraints» из созданных вами представлений вручную.

someView.translatesAutoresizingMaskIntoConstraints = NO; 

Если вы не установили, что NO затем IOS не преобразует пружины-и-распорки (например, автоматическое изменение размера маски) настройки для ограничений. Эти ограничения противоречат тем, которые вы делаете, с языком визуального формата.

Каждый раз, когда вы видите класс NSAutoresizingMaskLayoutConstraint в выводе ошибки constaints, вы можете быть уверены, что не отключили переводит.

Хорошая практика заключается в том, что при каждом представлении, которое вы создаете программным путем, вы также включаете переводы.