2015-08-28 10 views
17

Za każdym razem, gdy otwieram swój projekt w Xcode, mam 100 ostrzeżeń, ponieważ ramki każdego obiektu UI zostały przeniesione. Muszę poświęcić trochę czasu i przejść do każdego UIViewController i zaktualizować ramki na nim.Muszę aktualizować ramkę wszystkiego w storybooku za każdym razem, gdy uruchamiam Xcode

Czy ma to jakiś powód? Jak mogę to naprawić? Jakieś inne informacje, o których muszę wspomnieć?

+0

Mając ten sam problem. To jest naprawdę denerwujące. Za każdym razem, gdy wchodzę do pliku scenorysu, jest sto klatek, które wymagają aktualizacji. Nawet pliki '.xib'. –

+0

yes Ten sam problem, aby ponownie uruchomić mój XCode. Misplacement Zobacz w Story Board, –

Odpowiedz

4

Czy używasz repozytorium dla swojego kodu? Być może brakuje jakiegoś pliku konfiguracyjnego, prawdopodobnie niepoprawnie skompilowany.

+1

tak się dzieje głównie, gdy używamy kontroli wersji dla kodu. Nie powinniśmy otwierać scenorysu, chyba że naprawdę chcemy to zmienić, inaczej scenorys zostanie zmodyfikowany natychmiast, gdy go otworzymy, chociaż nie będzie w nim znacznych ilości wątków. –

+0

Jeśli nie mam używać scenorysów, to w jaki sposób ludzie używają autolayout i tak dalej? Czy wszystko odbywa się programowo podczas korzystania z git? –

+0

To samo dzieje się również ze mną, używam SVN do kontroli wersji i za każdym razem, gdy go otwieram, przychodzi do zmodyfikowanej sekcji, więc nie otwieraj planszy, chyba że jest to konieczne. i te ostrzeżenia są dość bolesne ... –

3

W moim przypadku miało to miejsce, ponieważ klasa wielkości, dla której ustawiłem ograniczenia, zmieniła układ, gdy otwieram projekt Xcode. Upewnij się więc, że klasa wielkości pozostaje taka sama, dla której zastosowałeś układ lub zmień go, jeśli został zmodyfikowany przez Xcode.

Jeśli powyższe nie działa, możesz spróbować utworzyć lokalne repozytorium utworzone przez Xcode i zatwierdzić kod przed zamknięciem Xcode.

Mam nadzieję, że to pomoże!

0

Oto kilka powodów, dla których widziałem sporadycznie niewłaściwie umieszczone poglądy. Nie jestem pewien, czy któryś z nich jest odpowiedzialny za problem, który widzisz - zazwyczaj spowoduje to, że kilka widoków będzie tu i tam, a nie każdy widok w twoim scenopisie. Ale umieściłem je na wszelki wypadek, na wszelki wypadek.

  • Różni członkowie zespołu mogą używać różnych wersji Xcode, które mogą nieco inaczej pozycjonować określone widoki, a które z pewnością zmienią plik scenorysu "wersję narzędzia" i tak dalej.
  • Ograniczenia nie są zwykle zadowalające z ułamkowych szerokości/wysokości w nich. Może to być trudne do wykrycia - na przykład możesz mieć widok, którego wewnętrzna wysokość jest nieparzystą liczbą pikseli wyśrodkowanych pionowo w widoku, którego wysokość jest parzystą liczbą pikseli, powodując, że widok wewnętrzny zaczyna się od pół piksela przesunięcie i chcesz zmienić położenie na niższy lub wyższy po ponownym otwarciu storyboardu.
0

przypadku plików XIB, można łatwo napisać skrypt, który aktualizuje automatycznie ramki:

ibtool input.xib --update ramy --write input.xib

Ale nie należy martw się o te ostrzeżenia: ramki zostaną automatycznie dostosowane podczas wykonywania.

1

Uważam ten został poproszony wcześniej tutaj: Interface Builder degrades storyboards, resizes and repositions views in small increments

ja jeszcze nie widziałem poprawkę problemu, ale odpowiedź Zamieściłem tam prawdopodobnie odnosi się tutaj. https://stackoverflow.com/a/28577800/682574

Przynajmniej jedno źródło powstało z powodu scenorysów rozdzielających układy na pełne granice pikseli (x = 7.0, y = 10.0) lub częściowe granice (x = 7,5, y = 10,5). Jak najlepiej mogę powiedzieć, można to ponownie obliczyć za każdym razem, gdy przeglądasz scenorys, a zaokrąglanie jest faktycznie określane na podstawie bieżącego środowiska wyświetlania.

Możesz celowo spowodować to zachowanie, wyświetlając scenorys na ekranie siatkówki, a następnie przeglądając go na ekranie innym niż siatkówka. Na moim monitorze z dwoma monitorami przeciągnięcie storyboardu z jednego ekranu (siatkówka 5k) na inny (nie-siatkówkowy) spowoduje wygenerowanie powodzi niespełnionych więzów. Niestety przeniesienie go nie naprawia ich!Wypróbuj go sam (lub nie ... to jest ból, aby poprawić).

W środowisku zespołowym można łatwo zobaczyć, jak to może się stać, gdy dwie osoby o różnych konfiguracjach widzą ten sam scenariusz.

Jak to naprawić? Nie słyszałem o przepływie pracy, który prawidłowo koryguje lub unika problemu.

0

Może się to zdarzyć ze względu na zewnętrzny wyświetlacz 4k. Wszyscy w moim zespole nie mają tego rodzaju problemu, tylko ja.

Po otwarciu Xcode próbuje wyrównać punkty logiczne do fizycznych pikseli, więc wszystko przesuwa się o 0.5 punktu.

Powiązane problemy