2014-09-02 4 views
3

Бета-версии Xcode 6 убивают меня в последнее время.iOS 8 Xcode 6: приложение последовательно сбой при использовании верхнего или нижнего макета для верхних/нижних ограничений

У меня есть следующая иерархия вида в моей раскадровке ...

enter image description here

Когда я контролирую перетаскивание из «заголовка View» на «View» (или наоборот) я получаю только «Top/Bottom Space to Top/Bottom Layout Guide "вместо" Top/Bottom Space to Container ". И когда я выбираю для прикрепления к руководству макета верхнего и нижнего уровня, приложение обычно вылетает. В любом случае, необходимо принудительно создать представление для создания ограничения из супервизора вместо руководств макета.

Или что это лучший способ обойти это ?!

Это ошибка, я получаю:

2014-09-02 15:38:07.913 BundleUp[2183:103534] The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0x7fb773fb07e0 SCHeaderView:0x7fb773fb05d0.centerX == _UILayoutGuide:0x7fb773facca0.centerX> 
    When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView _viewHierarchyUnpreparedForConstraint:] to debug. 
2014-09-02 15:38:07.914 BundleUp[2183:103534] *** Assertion failure in -[UIView _layoutEngine_didAddLayoutConstraint:roundingAdjustment:mutuallyExclusiveConstraints:], /SourceCache/UIKit_Sim/UIKit-3302.3.1/NSLayoutConstraint_UIKitAdditions.m:552 
2014-09-02 15:38:07.917 BundleUp[2183:103534] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Impossible to set up layout with view hierarchy unprepared for constraint.' 

И это после того, как позволить сам Xcode предложить ограничения, выбрав «Сбросить с рекомендуемыми ограничениями».

ответ

1

Если это начинает происходить с вами, я выяснил, как решить проблему. Иногда, когда вы создаете ограничения и удаляете их из Инспектора размеров (удаляйте, выбирая ограничение и нажав кнопку удаления), ограничение фактически не удаляется, а становится серым. Я до сих пор не знаю, что это значит ... почему они придерживаются, но я знаю, что они все равно влияют на макет, и из-за их существования, что приложение рушится. Удалите эти ограничения, и все будет работать так, как должно. Для получения информации о том, как удалить скрытые ограничения, см. Мой ответ на iOS 8 Xcode 6: What's the point of the grayed out constraints?.

+0

Что-то, что заняло у меня около часа, чтобы выяснить, что эта проблема может быть вызвана видом, из которого вы пришли, а также тем, в котором вы оказались! – Ant

+0

Выравнивание означает, что ограничение больше не «установлено» для текущего класса размера. Если вы посмотрите на нижнюю часть инспектора атрибутов с выбранным ограничением, вы можете снова включить «установленный» флажок, чтобы заставить их повторно активировать. К сожалению, удаление их вызывает то, что вызывает у меня Xcode, и повторная активация их вроде бы не помогает вообще :( – Mathieson