iOS Comic Reader - это жизнеспособный дизайн? - PullRequest
0 голосов
/ 12 февраля 2012

Из-за предстоящего крайнего срока я ищу самый простой и удобный способ собрать приложение Comic Reader.

Мой текущий дизайн выглядит следующим образом:

  • Каждая страницаявляется подклассом UIViewController, содержащим UIImageView внутри UIScrollView.
  • Нажатие правой стороны экрана выдвигает другую страницу на UINavigationController.

С этой базовой схемой я буду толкать 20+ UIViewController s друг на друга, по одному на каждую страницу.

Мой вопрос: является ли это злоупотреблением UIViewController s или нецелесообразным решением??

То, что я бы скорее сделал, я думаю, это один UIViewController, который перемещается по некоторым подпредставлениям, которые содержат содержимое страницы.Но если приведенная выше идея жизнеспособна, было бы проще - мне не пришлось бы вручную писать какую-либо логику и анимацию перехода страниц, просто нажать.

Я новичок в iOS и пытаюсь выучить достаточночтобы найти лучшее решение в сроки, которые у меня есть, поэтому любая помощь или направление очень ценится.Настройка приложения таким образом, очевидно, не запрещена, но после изучения того, что создание экземпляра ViewController, а затем использование его .view в другом UIViewController (что я делаю в другой части приложения), действительно плохая практика, я сомневаюсьмое понимание того, как UIViewController s следует использовать.

1 Ответ

1 голос
/ 13 февраля 2012

Я не знаю, что вы думаете, что это оскорбление, может быть, разговор о памяти? или, может быть, это не самый элегантный способ решить эту проблему?

Это, безусловно, не лучший способ решения этой проблемы, я уверен, что ОС не будет иметь проблем с этим (для более старых версий аппаратного обеспечения я могу представить некоторые глюки). Попробуйте, например, сделать что-то оскорбительное в приложении Twitter для iOS, перейдите в свой профиль, затем просмотрите один из своих твитов, затем зайдите в профиль этого твита или что-то в этом роде, снова, снова и снова. Или просматривать различные профили и твиты, я видел, что управление памятью довольно велико. Так что вам не придется беспокоиться о памяти, пока вы реализуете метод didReceiveMemoryWarning.

Из класса UIViewController справочная страница :

Управление памятью

Память является критически важным ресурсом в iOS, и контроллеры представления предоставляют встроенная поддержка для уменьшения их памяти в критических раз. Класс UIViewController обеспечивает некоторую автоматическую обработку нехватка памяти через его метод didReceiveMemoryWarning, который освобождает ненужную память. До iOS 3.0 этот метод был единственный способ освободить дополнительную память, связанную с вашим пользовательским представлением класс контроллера, но в iOS 3.0 и позже, метод viewDidUnload может быть более подходящим местом для большинства нужд.

Когда появляется предупреждение о нехватке памяти, класс UIViewController удаляет его взгляды, если он знает, что может перезагрузить или воссоздать их позже. Если это происходит, он также вызывает метод viewDidUnload, чтобы дать свой код шанс отказаться от владения любыми объектами, которые связаны с вашей иерархией представления, включая объекты, загруженные с помощью файла пера, объекты, созданные в вашем методе viewDidLoad, и объекты, созданные лениво во время выполнения и добавлен в иерархию представления. Как правило, если ваш взгляд Контроллер содержит выходы (свойства или необработанные переменные, которые содержат ключевое слово IBOutlet), вы должны использовать метод viewDidUnload для отказаться от права собственности на эти торговые точки или любые другие данные, связанные с просмотром что вам больше не нужно.

Теперь, если бы у меня было время для реализации другого решения, я бы, вероятно, разработал модель со всем содержимым каждого представления, например.

Модель

  • Заголовок (NSString).
  • PagePaths (NSArray).
  • CurrentIndex (int).
  • TransitionType (ComicBookTransitionType).

View

  • MainView (UIViewController).
  • MyModel (ComicBookModel).
  • Следующая страница (UIView). (Я бы, вероятно, предварительно загрузил это, чтобы гарантировать плавный переход от страницы к странице, так как следующее свойство).
  • Предыдущая страница (UIView).

Нечто подобное, все, что осталось бы сделать (и очень сложная часть), это изменить значение с MainView на NextPage или на предыдущую страницу.

И еще один вариант - перейти на Ebook Framework .

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