2014-09-06 13 views
43

Po dodaniu widoku podrzędnego do widoku ViewController root, a przy ustawieniach układu automatycznego leadingSpace, trailingSpace, topSpace i bottomSpace na zero pojawiają się dodatkowe spacje po lewej i prawe strony (więc jeśli wydrukuję ramkę wyekspozycji, jej pochodzenie będzie miało 16 i mniej na 32, niż powinno). Czyli dostajemy, że wiodące i końcowe spacje nie są zerami ...xCode 6 beta 7: storyboard dodaje dodatkową przestrzeń po prawej i lewej stronie

enter image description here

Jak widać na zdjęciu wiodącej przestrzeni - zero, ale origin.x = 16

Wcześniej nie był” t ciężko pracuję z automatycznym układem, więc moje pytanie brzmi: Czy to błąd nowego xCode lub funkcji?

P.S. Wszystkie ramki i ograniczenia zostały zaktualizowane.

Odpowiedz

119

System iOS 8 dodaje pojęcie “content margins” do UIView. The “What's New in Cocoa Touch” video from WWDC 2014 omawia marginesy zawartości (pod tytułem "Adaptacyjne marginesy") zaczynające się od około 12m30s.

Domyślne marginesy to 8 punktów z każdej strony. Każdy koniec ograniczenia układu może być względny do marginesu widoku, a nie do prawdziwej krawędzi widoku (użyj polecenia Plik> Otwórz szybko, aby przejść do definicji NSLayoutAttribute, aby zobaczyć możliwości).

Twoje ograniczenie jest "relatywne do depozytu zabezpieczającego". Podczas tworzenia ograniczenia z „Dodaj nowe ograniczenia” popover, można wybrać, czy to margin-krewny czy nie:

constraint-popover

zawsze domyślnie margin-relative; musisz zawsze wyłączać pole wyboru przy każdym dodawaniu ograniczeń, jeśli nie chcesz, aby były one zależne od marginesów.

Nie można zmienić tego, czy ograniczenie ma związek z marginesem w szybkim edytorze okien na ekranie. Zamiast tego kliknij dwukrotnie wiązanie, aby wyświetlić pełny inspektor atrybutów. Nie można korzystać z popup menu, aby wybrać, na każdym końcu przymusu, czy to margines względne czy nie:

constraint-attributes

Powiązane problemy