Nie mogę znaleźć sposobu na utworzenie ograniczenia „kwadratowego”, co oznacza, że „szerokość równa się wysokości” w programie Interface Builder. Myślę, że możliwe jest programowe dodanie takiego ograniczenia. Czy jest coś, co mogę zrobić w IB? Może po prostu tego nie widzę? Wydaje się trywialne, ale nie mogę tego znaleźć.
ios
interface-builder
autolayout
nslayoutconstraint
DemoniacDeath
źródło
źródło
Odpowiedzi:
Zaktualizuj Xcode 5.1b5
Ctrl + kliknij i przeciągnij z widoku i zwolnij, gdy wskaźnik znajduje się nad widokiem. Wybierz opcję „Format obrazu”. Utworzy ograniczenie, w którym pierwszy i drugi element jest widokiem.
Przed Xcode 5.1
Nie możesz, ponieważ w edytorze szerokości / wysokości brakuje pól, które mogłyby odnosić się do innej właściwości lub ustawić stosunek:
Dlatego nie można wyrazić następującego kodu w programie Interface Builder:
CGFloat ratio = 1.0; NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:myView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:myView attribute:NSLayoutAttributeHeight multiplier:ratio constant:0]; constraint.priority = 1000; [myView.superview addConstraint:constraint];
źródło
Dodaj nowe ograniczenie, współczynnik proporcji do 1: 1 w elemencie interfejsu użytkownika, jak na obrazku.
źródło
Aby rozpocząć, kontroluj przeciąganie po przekątnej od przycisku do samego siebie. Pojawi się menu kontekstowe, w którym można dodać ograniczenia szerokości i wysokości. Shift + kliknij każdy; pojawi się znacznik wyboru wskazujący, że zostało dodane ograniczenie. (Jeśli przypadkowo zamkniesz okno dialogowe przed dodaniem obu, to jest OK, po prostu powtórz krok przeciągania i ustaw drugi):
Przy pierwszym dodaniu te ograniczenia przyjmują bieżącą szerokość i wysokość przycisku, więc musisz dostosować każde ograniczenie, aby nadać mu bardziej odpowiednią wartość. Będziemy musieli to robić pojedynczo, chociaż nasz obraz jest kwadratowy, więc pamiętaj, aby użyć tej samej stałej wartości w obu ograniczeniach, aby proporcjonalnie zmienić rozmiar przycisku. Kliknij dwukrotnie ograniczenie i wprowadź mniejszą wartość w jego polu stałej:
źródło