2009-07-20 11 views
22

Ok, więc jestem zupełnie nowy w rozwoju iPhone'a i dostałem dość daleko za moją wiedzę. Potrzebuję tylko pomocy w podjęciu decyzji, jak zaprogramować te zdjęcia 4-6 w moim projekcie.UIView vs UIViewController

Po prostu chcę zrobić komiks z użytkownikiem, który może przesuwać z jednego obrazu do drugiego. Czy wszystkie te zdjęcia powinny być w UIVIEW lub UIViewController?

i wszelkie wskazówki dotyczące łączenia tych zdjęć, aby móc dodać kod do dotknięcia, byłoby niesamowite!

Odpowiedz

41

UIViewController nie wyświetla niczego; to po prostu koordynuje wyświetlanie UIView. Tak więc rzeczywiste zdjęcia będą musiały być wykonane w UIView. Ponadto Twój UIView jest odpowiedzialny za rozpoznawanie dotyku, gestów itp. To tam się kończy; rzeczywista reakcja twojego programu powinna należeć do UIViewController.

Innymi słowy, uczyć podklasę UIView, jak rozpoznać przesunięcie w lewo lub w prawo, a gdy zdecydował, że miało miejsce przesunięcie, to powiadomiłby swoją podklasę UIViewController tego zdarzenia. Kontroler zadecyduje, jaki obraz będzie wyświetlany obok, i wyświetli widok, aby go skonfigurować. Jest to część wzoru Model-View-Controller. Jest to dobrze znany i powszechnie stosowany wzorzec w rozwoju iPhone'a, więc dobrze byś go przeczytał.

4

Użyjesz obu. Opracowanie Cocoa Touch jest zgodne z metodologią MVC (Model, View, Controller). Jest to sposób na oddzielenie logiki kodu i elementów interfejsu użytkownika. UIView to miejsce, w którym radzisz sobie z tym, jak wygląda, UIViewController to klasa, w której obsługujesz zdarzenia. Jeśli chcesz najprostszy sposób na przesuwanie wielu stron treści, zajrzyj do UIPageControl.

4

Zdjęcia muszą być dodawane (poprzez addSubview) do obiektu UIView lub obiektu podklasy z UIView takich jak UIControl, UIScrollView itp

prawdopodobnie nie trzeba utworzyć klasy widoku własnego, np. MyView. Odkryłem, że jedynym prawdziwym powodem utworzenia niestandardowego widoku jest wydajność lub bardzo dynamiczna zawartość, na przykład tekst lub obrazy poruszające się w obrębie widoku. Jeśli nie planujesz implementacji funkcji drawRect, nie przejmuj się niestandardowym widokiem.

Będziesz będzie chcesz podklasy UIViewController. Będzie zarządzać zachowaniem twojego widoku i jest (zazwyczaj) najlepszym miejscem do komponowania widoku, który kontroluje.

UIPageControl jest prawdopodobnie najłatwiejszym sposobem na wykonanie operacji przesuwania, ale może to być trudne - przeczytaj uważnie dokumentację.

Powiązane problemy