2012-01-06 11 views
5

Mam wątpliwości dotyczące używania dwóch XIb dla jednej klasy zmieniającej orientacje dla Ipad. Czy to jest właściwa praktyka. Dla Ipad w trybie portretowym mam jeden projekt i dla trybu krajobrazowego mam inny projekt (trochę podobny do potrait, ale nie mogę adjus't w potrait). Czy mogę zrobić wszystko w programowaniu lub jego dobrze w użyciu 2 Xib, jakie są złożoności lub problemy, z którymi powinienem się zmierzyć przy użyciu 2 Xib's?Inny tryb Xib dla trybu Pejzaż i Krajobraz dla iPada

Odpowiedz

2

Można użyć tego samego XIB, ale mają dwa różne widoki, jeden dla portretu i jeden dla krajobrazu. W "didRotateFromInterfaceOrientation:" przełącz widoki w zależności od orientacji. Sprawdź poniższy link, w jaki sposób można to zrobić:

http://www.theappcodeblog.com/2011/03/30/orientation-change-tutorial-change-the-view-when-the-orientation-changes/

+0

Logicznie Nie jest to możliwe. Jeśli chcesz to zrobić, musisz utrzymywać dwa obiekty dla każdego kontrolera w XIB dla protrait i krajobrazu ... –

+0

??? dlaczego nie jest to możliwe? wykonano go w wielu aplikacjach. Wystarczy przejść przez podany link. Będziemy mieć dwa obiekty UIVIEW, pojedynczy XIB i pojedynczy kontroler. –

+0

Powiedziałem już, że potrzebujesz dwóch obiektów dla każdego kontrolera w XIB, a także w twojej próbce w powyższym linku robi to samo, co mówię. Teraz pomyślałem, co jeśli kontroler ma wiele przycisków i inny kontroler. Właśnie dlatego powiedziałem logicznie, że nie jest dobrze integrować się w ten sposób. –

8

Jeśli pytasz, czy za pomocą dwóch stalówki dla orientacji jest standardową praktyką wtedy odpowiedź brzmi: nie.

Jeśli Twoje interfejsy użytkownika dla krajobrazu i portretu są radykalnie różne, wówczas byłoby to bardziej akceptowalne podejście. Ale można łatwo użyć pojedynczego NIB z dwoma widokami w środku (jeden dla krajobrazu, drugi dla portretu).

Zaakceptowany wzór przedstawiony przez Apple oznacza, że ​​kontroler widoku zarządza zarówno orientacją poziomą, jak i portretową, a także dostosowuje swój widok (używając automatycznych maskowania, a także podpina różne metody delegatów uruchomione podczas rotacji, aby dodać/usunąć/animować widoki) lub zastępuje widok czymś innym.

Jeśli Twoje widoki krajobrazowe/portretowe są całkiem inne, polecam mieć pojedynczy NIB z dwoma widokami w środku (jeden dla krajobrazu, jeden dla portretu) i dodawanie/usuwanie tych dwóch widoków wewnątrz kontrolera widoku po wykryciu rotacji .

"Standardowa praktyka" jest zawsze dość trudna do zdefiniowania, a być może niektórzy ludzie nie zgodzą się ze mną, ale na pewno nie widziałem żadnych aplikacji, które wykorzystują dwa NIBs do orientacji w orientacji poziomej/pionowej i nie widziałem dowolny przykładowy kod Apple, który to robi. Mam nadzieję że to pomoże!

3

To zależy od złożoności realizacji programu. Jeśli chcesz zastąpić przycisk, powinieneś programowo zmienić ramkę. Jeśli projekty różnią się w trybie pionowym i poziomym, należy użyć dwóch plików xib.

Stosując 2 xib, trudno jest przenosić informacje z jednego arkusza XIB na inny. Na przykład. Jeśli Xib ma pole tekstowe, powinieneś skopiować tekst i umieścić drugi kod XIB itd.

+0

Dziękuję wszystkim za ich wspaniałe sugestie! To dobrze, używając dwóch widoków w jednej stalówce, stosując to podejście – gopal

Powiązane problemy