Помогите реализовать «Горизонтальный UITableViewController»? - PullRequest
1 голос
/ 08 декабря 2010

У меня есть куча «слайдов», которые я пытаюсь показать на iPad, по одному, используя UIScrollView.«Слайды» - это различные подклассы класса UIViewController.

Я храню свои слайды в NSUserDefaults, представленном NSDictionaries.При запуске я загружаю NSArray из NSDictionaries и перебираю их, передавая представления в UIScrollView.

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

  • Во-первых, как UITableViewController управляет перестановкой ячеек?Где я могу найти пример кода или алгоритмов?

  • Во-вторых, как я могу повторно использовать слайды, если они не все одного типа?

1 Ответ

1 голос
/ 08 декабря 2010

Я написал ответ о циклическом UIScrollview здесь:

Как реализовать циклический UIScrollView?

Если вы используете этот подход, вам действительно нужно загрузить только 3 вида в любое время.

Если ваши представления не являются однотипными, вам просто нужно реализовать как можно больше общего в подкласс UIView и выполнить необходимые настройки (настройка изображения и т. Д.) Перед отображением. Должно быть возможно создать только три из них. Тот, к которому вы прокручиваете, начинает отображаться, тот, к которому вы прокручиваете, модифицируется для отображения при прокрутке в поле зрения ...

A B C

Три вида - A и C не видны, B виден.

Если вы прокрутите вправо часть B, часть C будет видна. A можно использовать повторно и логически перемещать, чтобы следовать за C, чтобы вы получили

B C A

Продолжайте прокручивать вправо, измените B и сделайте это логически после A

C A B

Если вы прокручиваете другим способом ту же идею, но делаете это в обратном порядке.

...