Ich habe ein Layout mit vier Tasten. Im Portrait sollten sie übereinander gezeigt werden. In der Landschaft sollten sie in zwei Spalten mit jeweils zwei Knöpfen sein.Programmgesteuert zwei verschiedene Layouts mit Größenklassen implementieren
auf die Schaltflächen in Code umzusetzen - wirklich einfache Sachen:
UIButton *btn1 = [[UIButton alloc] init];
[self.view addSubview: btn1];
UIButton *btn2 = [[UIButton alloc] init];
[self.view addSubview: btn2];
UIButton *btn3 = [[UIButton alloc] init];
[self.view addSubview: btn3];
UIButton *btn4 = [[UIButton alloc] init];
[self.view addSubview: btn4];
NSDictionary *views = NSDictionaryOfVariableBindings(btn1, btn2, btn3, btn4);
[btn1 setTranslatesAutoresizingMaskIntoConstraints:NO];
[btn2 setTranslatesAutoresizingMaskIntoConstraints:NO];
[btn3 setTranslatesAutoresizingMaskIntoConstraints:NO];
[btn4 setTranslatesAutoresizingMaskIntoConstraints:NO];
// portrait constraints
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(50)-[btn1]-(50)-|"
options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(50)-[btn2]-(50)-|"
options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(50)-[btn3]-(50)-|"
options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(50)-[btn4]-(50)-|"
options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[btn1]-[btn2]-[btn3]-[btn4]-(50)-|"
options:0 metrics:nil views:views]];
Dies ist offensichtlich das Setup für Portrait-Layout ist. Früher hätte ich das Gerät und seine Ausrichtung bestimmt, um iPad und iPhone in ihren jeweiligen Ausrichtungen zu konkretisieren. Aber jetzt sollen wir Größenklassen verwenden. Wie kann ich feststellen, ob die Größenklasse "kompakt" ist ... und somit die entsprechenden Einschränkungen festlegen?
ummm, welche wwdc session war das? – Honey