2009-07-20 3 views
22

좋아, 그래서 나는 아이폰 개발에 새로운 realllly 오전 내 지식을 꽤 멀리했습니다. 내 프로젝트에이 4-6 개의 그림을 프로그래밍하는 방법을 결정하는 데 도움이 필요합니다.UIView 대 UIViewController

기본적으로 한 그림에서 다른 그림으로 사용자가 스 와이프 할 수있는 만화책을 만들고 싶습니다. 이 모든 그림이 UIVIEW 또는 UIViewController에 있어야합니까?

그리고 이러한 사진을 연결하기위한 팁으로 터치 용 코드를 추가 할 수 있습니다.

답변

41

UIViewController는 아무 것도 표시 할 수 없습니다. 단순히 UIView의 디스플레이를 조정합니다. 따라서 실제 사진은 UIView에서 수행해야합니다. 또한 UIView는 터치, 제스처 등을 인식하는 역할을 담당합니다. 프로그램의 실제 반응은 UIViewController에 달려 있어야합니다.

즉, 왼쪽 또는 오른쪽으로 스 와이프를 인식하는 방법을 UIView 하위 클래스에 알려주고 일단 스 와이프가 발생했다면 UIViewController 하위 클래스에 해당 이벤트를 알립니다. 그러면 컨트롤러는 다음에 표시 할 그림을 결정하고보기를 설정하도록 지시합니다.

이것은 Model-View-Controller 패턴의 일부입니다. 이것은 아이폰 개발에서 잘 알려지고 광범위하게 사용되는 패턴이기 때문에 여러분은 그것에 대해 읽을 수있을 것입니다.

4

둘 다 사용합니다. 코코아 터치 개발은 MVC (Model, View, Controller) 방법론을 따릅니다. 이것은 코드 논리와 사용자 인터페이스 요소를 분리하는 방법입니다. UIView는 어떻게 보이는지 처리합니다. UIViewController는 이벤트를 처리하는 클래스입니다. 여러 페이지의 콘텐츠를 가장 쉽게 스 와이프하려면 UIPageControl을 살펴보십시오.

4

사진 등, UIView의 객체 또는 UIView의에서 같은 UIControl,있는 UIScrollView로 서브 클래스 객체에 (addSubview를 통해) 추가 할 필요가

당신은 아마 자신의 뷰 클래스를 만들 필요가 없습니다

, 예 : MyView. 필자는 사용자 정의보기를 만드는 유일한 이유는 효율성 또는보기 내에서 이동하는 텍스트 나 이미지와 같은 매우 동적 인 내용을위한 것임을 알았습니다. drawRect 함수를 구현하지 않으려면 사용자 정의보기를 사용하지 마십시오.

은 UIViewController를 하위 클래스로 만듭니다. 뷰의 동작을 관리하며 (일반적으로) 제어하는 ​​뷰를 구성하는 가장 좋은 장소입니다.

UIPageControl은 아마도 스 와이프 동작을 구현하는 가장 쉬운 방법 일 수 있지만, 까다로울 수 있습니다. 설명서를주의 깊게 읽으십시오.