Was ist der beste Weg, um Landschaft / Porträt Unterschiede in IB zu behandeln?

8

Ich habe eine Ansicht, die die Anzeige im Quer- und Hochformat unterstützt, wobei sich die Steuerelemente beim Wechseln von einem zum anderen bewegen. Ich mache das gerade, indem ich die .center-Einstellung für jedes meiner Steuerelemente einstelle, wenn der Benutzer das Telefon dreht. Das Problem ist, dass dies mühsam ist und viel Code erfordert, und scheint den Zweck der Verwendung von Interface Builder an erster Stelle zu besiegen.

Meine Frage ist: Gibt es eine Möglichkeit im Interface Builder für eine Ansicht mehrere Looks zu unterstützen (eine für Landscape One für Portrait)? Wenn nicht, wie machen andere Leute das mit IB? Richten Sie 2 Ansichten ein?

Bearbeiten: Nur um meine Landschafts- und Hochformatansichten zu verdeutlichen, sehen sie anders aus, ich möchte keine direkte Transformation, ich zeige die Daten tatsächlich im Querformat anders an

    
rustyshelf 09.10.2008, 00:19
quelle

4 Antworten

1

Wenn nötig, füge ich UIView Objekte zu der Ansicht in IB hinzu, die ich ausgeblendet habe. Geben Sie ihm eine schöne Hintergrundfarbe, damit Sie es sehen können, und senden Sie es den ganzen Weg zum Hintergrund. Verwenden Sie dann den Rahmen dieser Ansicht, wenn Sie den Rahmen eines Objekts festlegen müssen. Wenn Sie viele davon haben, sollten Sie stattdessen UILabel verwenden, damit Sie ihm in IB einen sichtbaren Namen geben können.

Wenn Sie sich Sorgen um Speicherprobleme machen, entfernen Sie einfach all diese zusätzlichen UIView s in ViewDidLoad und speichern Sie ihre Frame-Werte einfach im Member CGRect s. Dies funktioniert natürlich nur dann, wenn Sie keine der Ansichten automatisch in der Größe anpassen oder neu positionieren, was Sie in diesem Fall sowieso nicht tun sollten. Ich mache das für die Größenänderung / Neupositionierung aus irgendeinem Grund, nicht nur wenn der Bildschirm rotiert.

    
Ed Marty 30.12.2008 18:32
quelle
0

Ich bin mir nicht 100% sicher, ob das möglich ist, aber haben Sie darüber nachgedacht, verschiedene View-Controller für Quer- und Hochformat zu verwenden?

    
Colin Barrett 27.10.2008 04:25
quelle
0

Die AutoSize-Attribute von IBOutlet-Objekten im Größeninspektor von IB (Befehl 3) bieten einige sehr schöne Optionen zum automatischen Strecken und Positionieren von Objekten. Sie können die L / R- und T / B-Bildschirmpositionen sowie die relative Breite und Höhe steuern. Sie können nicht die volle Kontrolle über das Layout bekommen, aber die meisten grundlegenden Operationen sind da.

    
Arrel 25.06.2009 22:23
quelle
0

Die einzige Möglichkeit, mit der mehrere Ansichten in IB unterstützt werden können, besteht darin, die automatische Skalierungsmaske der Komponenten so einzustellen, dass sie entweder skaliert und / oder an Kanten verankert wird. Um ein völlig anderes Layout für jede Ausrichtung zu erstellen, müssen Sie eine Hoch- und Querformatansicht separat erstellen (jeweils in einer eigenen XIB) und zwischen ihnen programmatisch wechseln.

    
Martin 01.06.2011 00:56
quelle