Pytanie Ograniczenie "Szerokość równa się wysokości" w Konstruktorze interfejsu


Nie mogę znaleźć sposobu na utworzenie "kwadratowego" ograniczenia, co oznacza "szerokość równa się wysokości" w Konstruktorze interfejsu. Sądzę, ż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ę to banalne, ale nie mogę go znaleźć.


76
2018-03-01 22:03


pochodzenie


Pamiętam, jak Peter Ammon mówił o "Polegaj na konstruktorze interfejsów jak najwięcej" w WWDC'12. Jak ironicznie. - DemoniacDeath
Tak, myślę, że wciąż brakuje kilku rzeczy w implementacji ograniczeń układu. Wygląda na to, że dali nam dostęp do większości parametrów, ale nie do mnożnika, który byłby przydatny dla wielu rzeczy. - rdelmar
Ale robi się coraz lepiej! Mam na myśli Auto Layout został wprowadzony mniej niż 3 lata temu i z mojego punktu widzenia wsparcie jest naprawdę dobre w dzisiejszych czasach. - Lukas Kubanek


Odpowiedzi:


Zaktualizuj Xcode 5.1b5

width equals height

Ctrl + kliknięcie i przeciągnięcie z widoku i zwolnienie, gdy wskaźnik znajduje się nad widokiem. Wybierz "Proporcje obrazu". Tworzy ograniczenie, w którym pierwszym i drugim elementem jest widok.


Przed Xcode 5.1

Nie możesz, ponieważ edytor szerokości / wysokości nie ma pól, które można powiązać z inną właściwością lub ustawić stosunek:

width constraint

Dlatego nie można wyrazić następującego kodu w Konstruktorze interfejsu:

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];

163
2018-04-18 17:53



Dziękujemy za najnowszą aktualizację. Xcode 5.1 beta 5 faktycznie pozwala na ustawienie współczynników proporcji w IB, ale kiedy próbuję skompilować projekt, pojawia się następujący błąd: Ograniczenia proporcji z wersjami Xcode przed 5.1. Więc może musimy poczekać na ostateczną wersję 5.1. To samo dla ciebie, @Jano? - Lukas Kubanek
Tak, zmiany w XIB nie są kompatybilne wstecz. Jeśli edytujesz w wersji 5.1, nie możesz wrócić do mniejszych wersji. - Jano
Więc jesteś w stanie skompilować Xib? To nie działa nawet z Xcode 5.1 beta 5 dla mnie. - Lukas Kubanek
@ onmyway133 utworzyć ograniczenie między dwoma widokami i ustawić mnożnik na 1: 2. - Jano
W Xcode 7, ctrl + kliknięcie przeciągnij z widoku i zwolnij na wierzchu, a następnie wybierz współczynnik proporcji - inorganik