Разработка пользовательского интерфейса iOS: подход к созданию экрана выбора документа - PullRequest
8 голосов
/ 24 июля 2011

Я собираюсь создать экран «селектора» документа, похожий на «Страницы и цифры» на iPad / iPhone: Document Selector Screen

Я работаю в WPF и имею опыт работы с iOS. При этом я ищу хороший подход к созданию чего-то вроде интерфейса на основе плиток, который Apple использует для открытия документов в Pages.

Я не связан с анимацией папки.

Как лучше всего подойти к созданию просто интерфейса плитки? Я предположил бы, что построю какую-то точку зрения, которая будет находиться внутри UIScrollView - но это природа этого подвидения, в которой я немного запутался. Есть ли в iOS какие-либо элементы управления в виде панели или сетки, в которые я мог бы загрузить набор плиток (т. Е. Документов)?

Что вы, ребята, думаете?

Ответы [ 2 ]

5 голосов
/ 28 июля 2011

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

Базовой структурой будет UIScrollView, содержащий набор представлений, каждое из которых представляет одну ячейку в сетке. Вы устанавливаете представление прокрутки contentSize на основе общего количества плиток. Затем вы создаете виды плиток по требованию и помещаете их в представление прокрутки.

Объект-делегат представления прокрутки будет отвечать за мониторинг положения прокрутки, откладывание представлений мозаики по мере их появления и (опционально) удаление представлений мозаики, которые выходят из поля зрения. По сути, именно так работает UITableView: в каждый момент времени существует только около шести экземпляров UITableViewCell, и они перерабатываются при прокрутке вверх и вниз по представлению. (Вообразите поезд, в котором кто-то на заднем конце тянет рельсы и передает их вперед кому-то впереди, опуская их перед поездом. Насколько известно, поезд идет на мили.)

Если вам понадобится разместить все представления самостоятельно, потратьте некоторое время на изучение семейства методов CGRect, включая CGRectDivide. Они будут полезны при изложении представлений, а также при вычислении того, что видно, а что нет.

0 голосов
/ 28 июля 2011

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

Если бы я разрабатывал реализацию такого типа, я бы создал подкласс UITableViewController. Разверните его, чтобы иметь столбцы. Затем создайте подкласс UITableViewCell для отображения изображения. Таким образом, весь код контейнера и все будет уже там, и все, что вам нужно сделать, это настроить его под свои нужды.

...