Я получаю очень странное поведение от одного из моих контроллеров.Ошибки NSLayoutConstraint только при переключении контроллеров просмотра
Я перехожу к одному и тому же контроллеру (с разными экземплярами) от двух разных UITableViews
на разных вкладках.
Когда он отображается из-под крана на UITableViewCell
, все в порядке и никаких ошибок не отображается. Если у меня есть открытый контроллер, и я уйду от него, выбрав другую вкладку, а затем перейдя к ней, нажав вкладку оригинала, я получаю большое количество ошибок NSLayoutConstraint
.
У меня нет никаких ограничений в моей ячейке, и у меня нет элементов интерфейса в представлении содержимого ячейки в раскадровке, так как я добавляю их все программно. Я также не определяю никаких ограничений в коде.
Полная ошибка here, так как она слишком велика, чтобы разумно вставить ее в SO.
Выдержка выглядит следующим образом:
2015-04-11 16:49:23.889 TradingPost[6982:60b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x155e5250 H:[UILabel:0x155d8150(158)]>",
"<NSLayoutConstraint:0x155ed9e0 H:|-(8)-[UILabel:0x155d8150] (Names: '|':UITableViewCellContentView:0x155d4a80)>",
"<NSLayoutConstraint:0x155eda30 H:[UILabel:0x155d8150]-(47)-[UIView:0x155e01a0]>",
"<NSLayoutConstraint:0x155f1bc0 UIView:0x155e01a0.trailing == UITableViewCellContentView:0x155d4a80.trailing - 8>",
"<NSAutoresizingMaskLayoutConstraint:0x156b7640 h=--& v=--& H:[UITableViewCellContentView:0x155d4a80(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x155e5250 H:[UILabel:0x155d8150(158)]>
Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
Дополнение: После дальнейшего исследования, я считаю, я все еще получаю ошибки, даже когда я удалить все генерирующий код пользовательского интерфейса от контроллера и всех ограничений из раскадровки. На данный момент я подозреваю колдовство.
Вы проверили/задали значение 'translatesAutoresizingMaskIntoConstraints' из рассматриваемых видов? – Dennis