Zbudowałem nowy projekt od podstaw w Swift w Xcode 6 (Beta 1) i widziałem dziwne zachowanie w przypadku scenorysów i wyświetlanych przeze mnie wyników.
Zbudowałem prosty interfejs (jak pokazano poniżej) - z dołączonymi właściwościami kontrolera widoku. Kiedy uruchomię to w symulatorze, spodziewałbym się, że `` Hello, World '' będzie centralnym elementem interfejsu użytkownika - wydaje się jednak, że ten `` Square '' jest po prostu dopasowywany do ekranu iPhone'a i dlatego wyświetlany jest niewłaściwy widok (patrz poniżej ).
Moje pytanie brzmi: czy ktoś inny widział to zachowanie i jak je naprawił?
Dzięki!
ios
iphone
interface-builder
xcode6
Wata cukrowa
źródło
źródło
Odpowiedzi:
Chociaż odpowiedź Asif Bilal jest prostszym rozwiązaniem, które nie obejmuje klas wielkości (które zostały wprowadzone w iOS 8.), zdecydowanie zaleca się przyzwyczajenie się do klas wielkości, ponieważ są one przyszłością, a ostatecznie i tak wskoczysz na niektóre punkt."
Prawdopodobnie nie dodałeś ograniczeń układu.
Wybierz etykietę, dotknij przycisku ograniczeń układu u dołu:
W tym menu dodaj szerokość i wysokość (NIE powinny być takie same jak moje), zaznaczając ich pole wyboru i kliknij dodaj ograniczenia. Następnie przeciągnij etykietę z wciśniętym klawiszem Control do głównego widoku, a po usunięciu kliknięcia powinieneś mieć opcje wyśrodkowania w poziomie i pionie w kontenerze. Dodaj oba i powinieneś być skonfigurowany.
źródło
Wykonaj poniższe czynności, aby rozwiązać problem
W Storyboard wybierz dowolny widok, a następnie przejdź do Inspektora plików. Odznacz pole „Użyj klas rozmiaru”, poprosisz o zachowanie danych klas rozmiaru dla: iPhone / iPad. Następnie kliknij przycisk „Wyłącz klasy rozmiaru”. Spowoduje to, że rozmiar widoku scenorysu przy wybranym urządzeniu.
źródło
Jeśli używasz Xcode 6 i projektujesz pod iOS 8, żadne z tych rozwiązań nie jest poprawne. Aby uzyskać poprawny rozmiar widoków tylko dla iPhone'a, nie wyłączaj klas rozmiarów, nie wyłączaj wywnioskowanych metryk i nie ustawiaj ograniczeń (jeszcze). Zamiast tego użyj kontrolki klasy rozmiaru, która jest łatwym do przeoczenia przyciskiem tekstowym u dołu programu Interface Builder, który początkowo brzmi „WAny hAny”.
Kliknij przycisk i wybierz Kompaktowa szerokość, standardowa wysokość. Zmieni to rozmiar widoków i obejmie wszystkie orientacje pionowe iPhone'a. Dokumenty firmy Apple można znaleźć tutaj: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/SelectingASizeClass.html lub wyszukaj „Wybieranie klasy rozmiaru w programie Interface Builder”
źródło
W Storyboard wybierz ViewController i przejdź do Atribute Inspector. Na samej górze, w obszarze Symulowane metryki znajdują się właściwości Rozmiar i Orientacja, które są ustawione na Wywnioskowane. Zmień je na żądane wartości.
Aby aplikacja wyświetlała się poprawnie na ekranie o innym rozmiarze, musisz również skonfigurować ograniczenia, jak opisano w Can Poyrazoğlu w pierwszym poście.
źródło
Miałem ten problem w xcode 6 i jest sposób na rozwiązanie konfliktów zmiany rozmiaru. Jeśli wybierzesz widok, u dołu zobaczysz ikonę, która wygląda jak | -Δ- |. Jeśli go klikniesz, twój projekt zmieni rozmiar dla różnych urządzeń.
źródło
Przejdź do Inspektora atrybutów (prawy górny róg) W Symulowane metryki, które mają właściwości Rozmiar, Orientacja, Pasek stanu, Górny pasek, Dolny pasek. W przypadku ROZMIAR zmień Wnioskowany -> Dowolny.
źródło
Na stronie scenorysu przejdź do Inspektora plików i odznacz „Użyj klas rozmiaru”. Powinno to zmniejszyć twój kontroler widoku do zwykłego rozmiaru iPhone'a, który znasz. Pamiętaj, że użycie „klas wielkości” pozwoli Ci zaprojektować projekt na wielu urządzeniach. Po usunięciu zaznaczenia Xcode wyświetli ostrzeżenie w następujący sposób. To powinno być oczywiste.
„Wyłączenie klas rozmiarów ograniczy ten dokument do przechowywania danych dla jednej rodziny urządzeń. Dane dla klasy rozmiaru najlepiej reprezentującej urządzenie docelowe zostaną zachowane, a wszystkie inne dane zostaną usunięte. Ponadto pliki zostaną przekonwertowane na -adaptacyjne odpowiedniki. "
źródło
Dla każdego, kto używa XCode 7, bardzo łatwo jest zaprojektować dla określonego rozmiaru urządzenia (zamiast domyślnego płótna kwadratowego).
W programie Interface Builder wybierz kontroler ViewController lub scenę z menu po lewej stronie. Następnie w sekcji
Show the Attributes Inspector
przejdź doSimulated Metrics
i wybierz żądaną pozycjęSize
z menu rozwijanego.źródło
Prawdopodobnie użyjesz „Rozwiąż problemy z automatycznym układem” (ikona trójkąta w prawym dolnym rogu w widoku scenorysu), aby dodać / zresetować sugerowane ograniczenia (Xcode 6.0.1).
źródło