Ich habe in Swift in Xcode 6 (Beta 1) ein neues Projekt von Grund auf neu erstellt und dabei ein seltsames Verhalten mit Storyboards und der von mir angezeigten Ausgabe festgestellt.
Ich habe eine einfache Oberfläche erstellt (wie unten gezeigt) - mit den Eigenschaften von View Controller. Wenn ich dies im Simulator ausführe, würde ich erwarten, dass "Hallo Welt" in der Benutzeroberfläche eine zentrale Rolle spielt. Es scheint jedoch, dass dieses "Quadrat" einfach in den iPhone-Bildschirm passt und daher die falsche Ansicht angezeigt wird (siehe unten) ).
Meine Frage ist: Hat jemand anderes dieses Verhalten gesehen und wie haben sie es behoben?
Vielen Dank!
ios
iphone
interface-builder
xcode6
Zuckerwatte
quelle
quelle
Antworten:
Während die Antwort von Asif Bilal eine einfachere Lösung ist, die keine Größenklassen beinhaltet (die in iOS 8 eingeführt wurden), wird dringend empfohlen, sich an Größenklassen zu gewöhnen, da diese die Zukunft sind, und Sie werden irgendwann trotzdem einspringen Punkt."
Sie haben die Layouteinschränkungen wahrscheinlich nicht hinzugefügt.
Wählen Sie Ihre Beschriftung aus und tippen Sie unten auf die Schaltfläche mit den Layoutbeschränkungen:
Fügen Sie in diesem Menü Breite und Höhe hinzu (es sollte NICHT mit meiner identisch sein), indem Sie das entsprechende Kontrollkästchen aktivieren und auf Einschränkungen hinzufügen klicken. Ziehen Sie dann Ihre Beschriftung bei gedrückter Ctrl-Taste in Ihre Hauptansicht. Wenn Sie dann auf klicken, sollten Sie die Optionen haben, um horizontal und vertikal im Container zu zentrieren. Fügen Sie beide hinzu, und Sie sollten eingerichtet sein.
quelle
Führen Sie die folgenden Schritte aus, um das Problem zu beheben
Wählen Sie im Storyboard eine beliebige Ansicht aus und wechseln Sie zum Dateiinspektor. Deaktivieren Sie das Kontrollkästchen "Größenklassen verwenden". Sie werden aufgefordert, die Größenklassendaten für: iPhone / iPad beizubehalten. Klicken Sie anschließend auf die Schaltfläche "Größenklassen deaktivieren". Dadurch wird die Ansichtsgröße des Storyboards mit dem ausgewählten Gerät geändert.
quelle
Wenn Sie Xcode 6 verwenden und für iOS 8 entwerfen, ist keine dieser Lösungen korrekt. Deaktivieren Sie keine Größenklassen, deaktivieren Sie keine abgeleiteten Metriken und legen Sie (noch) keine Einschränkungen fest, damit die Nur-iPhone-Ansichten die richtige Größe haben. Verwenden Sie stattdessen das Größenklassen-Steuerelement, eine leicht zu übersehende Textschaltfläche am unteren Rand des Interface Builder, die anfänglich "wAny hAny" lautet.
Klicken Sie auf die Schaltfläche und wählen Sie Kompakte Breite, Normale Höhe. Dadurch können Sie die Größe Ihrer Ansichten ändern und alle iPhone-Porträtausrichtungen abdecken. Apples Dokumente hier: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/SelectingASizeClass.html oder suchen Sie unter "Auswählen einer Größenklasse in Interface Builder".
quelle
Wählen Sie im Storyboard Ihren ViewController aus und wechseln Sie zum Atribute Inspector. Ganz oben haben Sie unter Simulierte Metriken die Eigenschaften Größe und Ausrichtung, die auf Abgeleitet gesetzt sind. Ändern Sie sie auf die gewünschten Werte.
Damit eine Anwendung auf einer anderen Bildschirmgröße ordnungsgemäß angezeigt wird, müssen Sie auch Einschränkungen einrichten, wie von Can Poyrazoğlu im ersten Beitrag beschrieben.
quelle
Ich hatte dieses Problem in xcode 6 und es gibt eine Möglichkeit, die Größenänderungskonflikte zu lösen. Wenn Sie Ihre Ansicht auswählen, sehen Sie unten ein Symbol, das wie | -Δ- | aussieht. Wenn Sie darauf klicken, wird die Größe Ihres Projekts für verschiedene Geräte geändert.
quelle
Gehen Sie zum Attributinspektor (rechte obere Ecke) in den simulierten Metriken, die die Eigenschaften Größe, Ausrichtung, Statusleiste, Obere Leiste und Untere Leiste haben. Ändern Sie für GRÖSSE Abgeleitet -> Freiform.
quelle
Gehen Sie auf Ihrer Storyboard-Seite zum Dateiinspektor und deaktivieren Sie "Größenklassen verwenden". Dadurch sollte Ihr View Controller auf die normale IPhone-Größe verkleinert werden, mit der Sie vertraut waren. Beachten Sie, dass Sie mit 'Größenklassen' Ihr Projekt auf vielen Geräten entwerfen können. Sobald Sie dies deaktivieren, gibt Ihnen der Xcode einen Warndialog wie folgt. Dies sollte selbsterklärend sein.
"Durch Deaktivieren von Größenklassen wird dieses Dokument auf das Speichern von Daten für eine einzelne Gerätefamilie beschränkt. Die Daten für die Größenklasse, die das Zielgerät am besten darstellt, werden beibehalten und alle anderen Daten werden entfernt. Außerdem werden Segmente in ihre Nicht-Daten konvertiert -adaptive Äquivalente. "
quelle
Für jeden, der XCode 7 verwendet, ist es sehr einfach, für eine bestimmte Gerätegröße zu entwerfen (anstelle der quadratischen Standardleinwand).
Wählen Sie im Interface Builder Ihren ViewController oder Ihre Szene aus dem linken Menü aus.
Show the Attributes Inspector
Gehen Sie dann unter zuSimulated Metrics
und wählen Sie das gewünschteSize
aus dem Dropdown-Menü.quelle
Sie werden wahrscheinlich das "Automatische Layoutprobleme beheben" (Symbol unten rechts - Dreieck in der Storyboard-Ansicht) verwenden, um vorgeschlagene Einschränkungen hinzuzufügen / zurückzusetzen (Xcode 6.0.1).
quelle