it-swarm.com.de

Fehler beim Xcode 5-Layout - Der verschobene Ansichtsrahmen für Beschriftung unterscheidet sich zur Laufzeit

Ich habe gerade Xcode 5 installiert und bereite gerade meine Apps für die nächste Woche in iOS 7 für den App Store vor. Ich bekomme jedoch eine ganze Reihe von Fehlern und Warnungen. 

In einer App, wo ich eine UIPickerView, UITextFields und eine Reihe von UILabels habe. In dieser App wird bei fast allen Steuerelementen in der Storyboard-Datei ein Illegal Configuration (rot) Fehler angezeigt. Ich weiß nicht, was dieser Fehler ist oder wie ich ihn beheben kann. Ich würde mich über etwas Hilfe freuen. Ich kann die Datei nicht vollständig neu erstellen, da es 20 komplizierte Ansichten gibt.

In einer anderen App gibt es eine UIScrollView, die eine Reihe von UILabels und UITextFields enthält, sowie eine UITextView, die programmgesteuert erstellt wird und Text enthält, der auf den von Ihnen in einer (vorherigen Ansicht) ausgewählten UITableView basiert, sowie deren Größe, um sich an den Inhalt anzupassen. Die Größe der UIScrollView wird angepasst, um sie an die neue Größe der UITextView anzupassen. Dieses wird kompiliert und erstellt und die UITextView wird erstellt, enthält jedoch nicht den Text, wahrscheinlich, weil die Größe jetzt falsch geändert wird. Die UIScrollView scrollt jetzt auch horizontal und nicht vertikal. Dieses gibt nur (gelbe) Warnungen, die alle sagen: 

Misplaced View Frame for "Label - Symbol:" will be different at run time. für 4 Steuerelemente, einschließlich dieser Beschriftung und eines weiteren, eines Textfelds und der Bildlaufansicht. 

Ich würde mich über jede Hilfe freuen, da ich zum ersten Mal auf eine neue Version von Xcode und iOS umstellen werde.

P.S: Zu den Illegal Configuration-Fehlern gehören:
Auto Layout on iOS Versions prior to 6.0

Vielen Dank!

18
Youssef Moawad

Wenn Sie hier immer noch nach einer Antwort suchen, ist die Antwort wahrscheinlich, dass Sie in Ihrer AutoLayout-Ansicht entweder keine oder unzulässige Einschränkungen haben. 

Sie können dies beheben, indem Sie die Ansicht auswählen und zur Menüoption Xcode gehen: Editor -> Resolve Auto Layout Issues -> Add Missing Constraints / Reset to Suggested Constraints.

Sie können auch das gesamte Layout auswählen und dasselbe tun. Dadurch werden alle Ansichten in Ihrem Layout auf die empfohlenen Einschränkungen zurückgesetzt.

Wenn Sie benutzerdefinierte Einschränkungen vornehmen müssen, müssen Sie Ihre eigenen automatischen Layout-Einschränkungen entweder in der Storyboard/XIB-Datei oder manuell im Code einrichten.

Weitere Informationen zum automatischen Layout finden Sie in Dokumentation von Apple .

Außerdem können Sie das automatische Layout im Layout deaktivieren, wenn es so angezeigt werden soll, dass keine automatischen Nachjustierungen vorgenommen werden (dies wird nicht empfohlen).

enter image description here

45
Joel Fischer

Reset to Suggested Constraints wird diese Warnung manchmal nicht los. Die Lösung ist die Auswahl von Placeholder im Dropdown-Menü Intrinsic Size im Größeninspektor der betreffenden UIView. Fügen Sie dann die fehlenden Einschränkungen nach Bedarf hinzu.

15
Morrowless

Wählen Sie einfach Ihren Ansichts-Controller aus 

Editor -> Autolayout-Probleme beheben -> Alle Einschränkungen in ViewController aufheben.

3

In Bezug auf Frame "Label-Frame wird zur Laufzeit unterschiedlich" - Weitere Informationen finden Sie in den Versionshinweisen unter Autolayout: Laufzeit.

https://developer.Apple.com/library/prerelease/ios/releasenotes/DeveloperTools/RN-Xcode/index.html#//Apple_ref/doc/uid/TP40001051

Die vollständige Antwort wird hier angezeigt, nachdem NDA aufgehoben wurde.

Hinweis: Dies geschieht auch unter Xcode 4.2, aber das Problem wird von IB nicht angesprochen.

2
memmons

In den beiden Textfeldern, die ich in View Controlller hinzugefügt habe, wurde derselbe Fehler angezeigt. Was mir geholfen hat, das Problem zu beheben, ist: In der Dokumentgliederung habe ich das erste Textfeld mit gedrückter Strg-Taste in die Ansicht gezogen und Horizontal im Container zentrieren. Dann habe ich Strg + das 2. Textfeld in die Ansicht gezogen und Vertikal im Container zentrieren ausgewählt. Hoffe das hilft dir auch.

0
Nupur Sharma

Alternativ können Sie Auto Layout ganz ausschalten. 

Dieser Ansatz ist praktisch, wenn Sie mit iOS 5 kompatibel sein möchten.

0
Jay Versluis

Xcode funktioniert jetzt mit relativer Position gegenüber übergeordneten Ansichten. Sie können sie korrigieren, indem Sie auf die orangefarbenen Linien klicken und auf die Markierung klicken und "Storyboard-Wert verwenden" oder etwas auswählen

0
user2714257