UIView против UIViewController - PullRequest
       9

UIView против UIViewController

28 голосов
/ 20 июля 2009

Хорошо, так что я действительно новичок в разработке для iphone, и я достаточно далеко продвинулся в своих знаниях. Мне просто нужна помощь, чтобы решить, как запрограммировать эти 4-6 изображений в мой проект.

Я в основном хочу сделать комикс, чтобы пользователь мог перемещаться от одного изображения к другому. Должны ли все эти изображения быть в UIVIEW или UIViewController?

и любые советы по подключению этих картинок, чтобы я мог затем добавить код для касания, были бы великолепны!

Ответы [ 3 ]

45 голосов
/ 20 июля 2009

UIViewController не может ничего отобразить; он просто координирует отображение UIView. Таким образом, реальные фотографии должны быть сделаны в UIView. Кроме того, ваш UIView отвечает за распознавание касаний, жестов и т. Д. На этом все и заканчивается; Реальная реакция вашей программы должна зависеть от UIViewController.

Другими словами, вы научите подкласс UIView распознавать пролистывание влево или вправо, и как только он решит, что считывание произошло, он уведомит ваш подкласс UIViewController об этом событии. Затем контроллер решит, какое изображение будет отображаться следующим, и сообщит представлению о его настройке.

Это часть шаблона Model-View-Controller . Это хорошо известный и широко используемый шаблон в разработке для iPhone, так что вам будет полезно прочитать его.

6 голосов
/ 20 июля 2009

Вы будете использовать оба. Разработка Cocoa Touch следует методологии MVC (модель, представление, контроллер). Это способ разделения логики кода и элементов пользовательского интерфейса. UIView - это место, где вы обрабатываете то, как оно выглядит, UIViewController - это класс, где вы обрабатываете события. Если вы хотите самый простой способ пролистать много страниц контента, загляните в UIPageControl.

5 голосов
/ 20 июля 2009

Изображения должны быть добавлены (через addSubview) к объекту UIView или объекту, разделенному на подклассы из UIView, например UIControl, UIScrollView и т. Д.

Возможно, вам НЕ нужно создавать собственный класс представления, например MyView. Я обнаружил, что единственная реальная причина для создания собственного представления - это эффективность или высокодинамичный контент, такой как текст или изображения, которые перемещаются внутри представления. Если вы не планируете реализовывать функцию drawRect, не беспокойтесь о собственном представлении.

Вы захотите захотеть создать подкласс UIViewController. Он будет управлять поведением вашего представления и (обычно) является лучшим местом для создания представления, которым он управляет.

UIPageControl, вероятно, самый простой способ реализовать поведение смахивания, но он может быть сложным - внимательно прочитайте документацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...