Mam UIView w moim UIViewController w scenorysie, do którego chcę dodać ograniczenie do przestrzeni, która wyświetla odległość od górnej krawędzi.
Teraz, kiedy robię to zwykle, naciskając ctrl + przeciągnij do głównego widoku ViewControllera, dostaję tylko opcję ustawienia go na górny przewodnik po układzie.
Jest to dla mnie problem, ponieważ w pewnym momencie aplikacji zamierzam przesunąć główny widok w górę o około 20-50 pikseli, a wtedy widok, który mam, nie będzie się poruszał ... ponieważ nie jest dostosowany do superviewu.
Jak mogę to zrobić ręcznie w scenorysie, czy muszę dodać to programowo?
Używam Xcode 6.
ios
storyboard
autolayout
nslayoutconstraint
Arbitur
źródło
źródło
Odpowiedzi:
Po prawej stronie wartości stałej ograniczenia znajduje się strzałka. Jeśli go klikniesz, pojawi się menu, w którym możesz wybrać, do czego chcesz przypisać swoje ograniczenie. Jeśli wybierzesz opcję „Widok”, zostanie on przypięty do góry widoku.
źródło
Powinieneś być w stanie to zrobić, podświetlając żądany widok w serii ujęć, a następnie wybierając
Editor > Pin > Top Space to Superview
w górnym menu.źródło
TL; DR: Możesz ograniczyć margines, naciskając Altklawisz na klawiaturze.
Można również dodać, że jeśli widok, który próbujesz przypiąć, nie jest bezpośrednim podziałem widoku, do którego chcesz go przypiąć, sugerowane podejście nie jest tak naprawdę poprawne. Powiedzmy, że hierarchia widoków wygląda tak i chcesz przypiąć widok obrazu (
Parallax Image View
w tym przypadku) do widoku kontrolera widoku (View
w tym przypadku).Aby to zrobić, po prostu Control+ Dragod
Parallax Image View
doView
. To przedstawia domyślne opcje, w których możeszVertical Spacing to Top Layout Guide
przypiąćParallax Image View
do górnego przewodnika po układzie.To, co chcesz, to przypiąć go do góry (marginesu) widoku. Aby to zrobić, musisz przełączyć się na inny zestaw ograniczeń, naciskającAlt
źródło
Miałem już całą masę ograniczeń i chciałem je po prostu zmienić, zamiast je łamać. Okazuje się, że jeśli dwukrotnie klikniesz ograniczenie w celu edycji, a następnie klikniesz element, który ma „.Margina”, możesz po prostu wyłączyć opcję „Względem marginesu”, wybierając ten element.
źródło
Odpowiedź Dana działa. Chciałem tylko powiedzieć, że jeśli ustawisz swój widok w StoryBoard na y <20 i skonfigurujesz ograniczenia za pomocą panelu pinezek, zostanie ustawiony najwyższy widok na superview:
źródło
Jeśli wysokość widoku zostanie przypadkowo ustawiona na 0, przewodnik układu pionowego odstępu do góry NIE pojawi się. Pojawi się jednak przewodnik układu pionowego od dołu do dołu, co musiało mieć sens dla kogoś w Apple około 2004 roku.
źródło
Żadna z powyższych odpowiedzi nie zadziałała dla mnie, zamiast tego muszę zrobić hack, aby ustawić górę widoku podrzędnego z górą superview zamiast z przewodnikiem po układzie górnym.
Teraz możesz już iść.
źródło