Próbuję zrozumieć, w jaki sposób można użyć automatycznego układu do pozycjonowania elementów względem innych widoków w procentach.Omówienie mnożnika w układzie automatycznym w celu użycia pozycjonowania względnego
Na przykład, niedawno dowiedziałem się, że można określić dolny rzutem powinien leżeć 4% wyższa niż dnie swojego Superview, korzystając w ten sposób:
self.view.addConstraint(NSLayoutConstraint(item: label, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 0.96, constant: 0))
to sens do mnie, ponieważ mnożnik 1 by go wyrównać bezpośrednio na dole widoku, więc możesz zmniejszyć tę kwotę o 4 procent, zmieniając mnożnik na 0.96.
Ale jak możesz zrobić to samo w innym kierunku? Chcesz określić szczyt etykiety powinien zaczynać się o 4% od górnej części widoku. Jeśli użyjesz tej samej linii, ale zmienisz atrybuty na .Top
, oznacza to, że byłaby o 4% wyższa niż górna strona widoku (ale tak naprawdę nie przesuwa go poza ekran). Nie możesz mieć ujemnego mnożnika, którego nie myślę, i nie wierzę, że wartość większa niż 1 robi cokolwiek, gdy stała wynosi 0. Jak to zrobić?
Mam takie samo pytanie dotyczące implementacji wiodącej i końcowej. Krycie jest łatwe. Jeśli chcesz to 10% od prawej:
self.view.addConstraint(NSLayoutConstraint(item: label, attribute: .Trailing, relatedBy: .Equal, toItem: self.view, attribute: .Trailing, multiplier: 0.9, constant: 0))
To ma sens, bo go wybrać z powrotem 0,1 lub 10% zamiast pełnego wyrównania na 1,0. Ale jak zrobić to samo dla prowadzenia? Pomyślałem, że możesz ustawić wiodącą etykietę względem trajektorii widoku, a następnie ustawić mnożnik na 0.1. W moim przekonaniu oznaczałoby to, że etykieta zaczyna się od bardzo dalekiego prawa, ale potem zostanie wykręcona z powrotem o 90%, a zatem uzyskanie pożądanego 10% od lewej. Ale tak nie jest, nie jestem pewien dlaczego.
Czy możesz wyjaśnić, jak to działa, jak właściwie użyć mnożnika, aby uzyskać te względne układy?
Aby było to łatwiejsze, załóżmy, że chcesz utworzyć etykietę, która ma górne i dolne 10% wysokości widoku, oraz ciągnąć i prowadzić 10% szerokości widoku. Na iPhonie w pionie pojawi się więcej wypełnienia nad i pod etykietą, ponieważ jest wypełnienie po jego lewej i prawej stronie, tak jak (tak, to jest narysowane na skali):
Ale powiedzmy na iPadzie zostanie pokazany w widoku, który jest idealnym kwadratem. W związku z tym dopełnienie będzie mieć taką samą wartość dookoła, tak jak:
Pytanie brzmi, jak zdefiniować takie wiązania jako dynamiczne w wartości, w przeciwieństwie do ustawiania stałej wartości dla stałej. Już wiem, jak robić dno i spływanie, ale najlepsze i czołowe sprawiają, że jestem zakłopotany. Mam nadzieję, że rozumiem, jak używać mnożnika do bardziej zaawansowanych układów, na przykład określenie wierzchołka etykiety powinno leżeć 10% pod dnem innej etykiety, w przeciwieństwie do ustawiania stałej stałej.
można pokazać schemat tego, co staramy się osiągnąć? – matt
Do tego bardzo starego QA .. podstawowe podejście polega na użyciu widoków "spacerów" lub "mierzenia". Po prostu oznacz je jako ukryte. Wykonują dla ciebie wszystkie obliczenia. – Fattie