2013-03-01 18 views
73

Nie mogę znaleźć sposobu na utworzenie wiązania "kwadratowego", 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źć.Ograniczenie "szerokości równej wysokości" w konstruktorze interfejsów

+0

Pamiętam, jak Peter Ammon mówił o "Jak najbardziej polegać na konstruktorze interfejsów" w WWDC'12. Jak ironicznie. – DemoniacDeath

+4

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

+0

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. –

Odpowiedz

159

Aktualizacja Xcode 5.1b5

width equals height

Ctrl + kliknięcie i przeciągnięcie z widokiem i zwolnić gdy kursor znajduje się nad widzenia. Wybierz "Proporcje obrazu". Tworzy ograniczenie, w którym pierwszym i drugim elementem jest widok.


Przed Xcode 5.1

Nie można, ponieważ edytor szerokość/wysokość brakuje pól odnosić się do innej nieruchomości lub ustawić współczynnik:

width constraint

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

Dziękujemy za najnowszą aktualizację. Xcode 5.1 beta 5 faktycznie pozwala na ustawienie współczynnika proporcji w IB, ale kiedy próbuję skompilować projekt, dostaję następujący błąd: _Aspect ratio ratio z wersjami Xcode przed 5.1_. Więc może musimy poczekać na ostateczną wersję 5.1. To samo dla ciebie, @Jano? –

+0

Tak, zmiany w XIB nie są wstecznie kompatybilne. Jeśli edytujesz w wersji 5.1, nie możesz wrócić do mniejszych wersji. – Jano

+0

Więc jesteś w stanie skompilować Xib? To nie działa nawet z Xcode 5.1 beta 5 dla mnie. –

Powiązane problemy