Einrichten von automatischen Layouteinschränkungen für die Hierarchie programmatischer Ansichten?

9

Ich erstelle meine Ansichtshierarchie programmatisch wie folgt:

%Vor%

Die beiden VC werden von XIBs geladen, die in beiden Fällen automatisches Layout verwenden. Alles sieht gut aus, aber wenn ich ein po [[UIWindow keyWindow] _autolayoutTrace] mache, bekomme ich einige beunruhigende AMBIGUOUS LAYOUT Warnungen in der Konsole:

%Vor%

Also meine Frage ist, wie werde ich sie loswerden? Oder allgemeiner ausgedrückt: Wie gehen Sie vor, um Ihr Fenster einzurichten und die Hierarchie mithilfe des automatischen Layouts programmgesteuert anzuzeigen?

Ich finde die Dokumentation sehr vage bezüglich der programmtechnischen Einrichtung des Fensters. Und obwohl ich mir alle drei WWDC-Videos zu diesem Thema angesehen habe, konnte ich nicht verstehen, wie das geht.

BEARBEITEN: Es scheint, dass die Probleme, die ich habe, nur mit dem neuen iOS 7 zusammenhängen. Da es unter NDA steht, werde ich diese Diskussion in die designierten Apple Entwicklerforen verschieben.

    
ABeanSits 27.06.2013, 07:53
quelle

1 Antwort

1

AMBIGUOUS LAYOUT bedeutet, dass Sie nicht genug für Auto Layout angegeben haben, um zu wissen, wie Sie Ihre Ansicht planen. Mit anderen Worten, was Sie angegeben haben, ist ein bisschen vage.

Das ist ziemlich anders als bei defekten Constraints, wo Sie zwei oder mehr Constraints haben, die Auto Layout veranlassen, verschiedene Dinge zu tun.

Mit einem mehrdeutigen Layout wird Auto Layout versuchen , um herauszufinden, was Sie vorhatten. Hoffentlich wird das was du willst, aber es ist nicht garantiert. Daher die Warnung.

Diese Antwort ist nicht der richtige Ort, um Ihnen zu sagen, wie Sie anfangen sollen. Aber glücklicherweise erscheinen jetzt mehr Auto-Layout-Ressourcen.

Es gibt ein Buch iOS Auto Layout Demystified . Obwohl ich es gekauft habe, hatte ich noch keine Gelegenheit es zu lesen. Es sieht aber ziemlich gut aus.

Schau dir auch Ole Begemanns exzellenten Artikel 10 Dinge an Sie müssen über Cocoa Autolayout wissen .

Sehen Sie sich für das Einstiegs-Tutorial Ray wenderlichs Auto-Layout Anfang an in iOS 6: Teil 1/2 .

Wenn ich schließlich sagen kann, dass ich jedes Mal eine Auto-Layout-Sache bekomme, vergesse ich, das setTranslatesAutoresizingMaskIntoConstraints -Flag auf NO für Ansichten zu setzen, die ich programmatisch erstelle, um Auto-Layout zu verwenden. Behalten Sie das im Hinterkopf, wenn Sie auf der Konsole irgendwelche verrückten Constraint-Ausnahmen sehen.

    
Max MacLeod 11.07.2013 15:10
quelle