web-dev-qa-db-de.com

Wie lege ich die dynamische Breite und Höhe einer Ansicht im automatischen Layout in iOS fest?

Ich habe eine UIView in meiner Super-Ansicht. Ich habe einige Einschränkungen festgelegt. Jetzt möchte ich, dass die Größe der Ansicht auf verschiedenen Geräten unterschiedlich sein sollte Seitenverhältnis, aber das macht eine Ansicht auf mehreren Geräten zu groß oder zu klein. 

Ich möchte, dass die Höhe und Breite im gleichen Verhältnis zunehmen, dass alle Geräte gleich aussehen müssen. Ich möchte eine flexible Höhe und Breite der Ansicht haben.

Hier ist das Bild enter image description here

Danke im Voraus 

12
TechGuy

Verwenden Sie Größenklassen. Es ist hilfreich, unterschiedliche Einstellungen für verschiedene Geräte vorzunehmen. http://www.raywenderlich.com/83276/beginn-adaptive-layout-tutorialhttps://youtu.be/IwSTXY0awng?t=2m12s

3
Andrew Luca

enter image description hereAm einfachsten erstellen Sie ein Outlet Ihrer width- und height-Einschränkung.

Dann ändern Sie es dynamisch in viewDidLoad je nach Telefon.

Um zu prüfen, um welches Telefon es sich handelt, können Sie die Gerätehöhe wie 480 für iPhone 4S, 568 für iPhone 5,5S usw. überprüfen

@interface ScoreListViewController (){
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;

@end



- (void)viewDidLoad {
[super viewDidLoad];
// Set the value according to your requirement
if(4S){
self.heightConstraint.constant=100;
}

 }
2
Mukesh

Folgen Sie den Screenshots wie folgt:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

Sie erhalten das Ergebnis wie unten

enter image description here

2
Nischal Hada

Ich habe einen Blog Artikel über Autolayouting für sich dynamisch ändernde Layouts geschrieben.
Für jede Bildschirmgröße können Sie die Einschränkungen programmgesteuert hinzufügen.
Algorithmus

  1. Rufen Sie die aktuelle Gerätegröße ab
  2. Holen Sie sich die erforderlichen Einschränkungen entsprechend der Gerätegröße
  3. Fügen Sie dann die Einschränkungen programmgesteuert hinzu


Änderung nach Orientierung

  • Hören Sie die UIDeviceOrientationDidChangeNotification-Benachrichtigung
  • Fügen Sie neue Bedingungen gemäß der Benachrichtigung hinzu
  • Rufen Sie dann setNeedsUpdateConstraints auf
    Weitere Informationen und einen Beispielcode finden Sie im Blogartikel und this github repo
0
deltaaruna