Воссоздайте UIPickerView, показывая только одну строку - PullRequest
2 голосов
/ 14 июня 2011

Мне нужен «PickerView», который ведет себя как обычный UIPickerView, но показывает только одну строку данных и имеет собственный дизайн.

Что-то похожее на изображение, показывающее переход из подпредставления 1к подпредставлению 2. После того, как пользователь поднимает палец и после остановки прокрутки, будет отображаться только одно подпредставление:

ИЗОБРАЖЕНИЕ

Таким образом, в основном прокрутка, которая:

  • бесконечен как в положительном, так и в отрицательном направлениях, показывая одни и те же записи снова и снова

  • использует разбиение на страницы для нескольких подпредставлений

  • показывает только одно подпредставление, когда не прокручивается, и не более двух подпредставлений при прокрутке.

Я могу заставить работать бесконечный просмотр прокрутки, но не с включенной подкачкой страниц.Пейджинг всегда будет ограничивать мою прокрутку следующим подпредставлением.

Поэтому я думаю о создании собственного подкласса UIView, который будет настраивать поведение прокрутки для имитации UIPickerView.Но прежде чем сделать это, я хотел бы получить некоторые мнения об идее в целом.Является ли создание собственного UIView правильным способом?У кого-нибудь есть некоторый опыт с ожидаемым исполнением?(Будут таймеры для обработки алгоритма прокрутки, который, конечно, нужно воссоздать ...:)

Другой подход - это создать подкласс UIScrolView и реализовать пейджинг самостоятельно.Я знаю, когда scrollView начинает замедляться, поэтому, возможно, есть способ перезаписать contentOffset, чтобы он прокручивался в нужное положение ...?!

Любая помощь приветствуется!Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Вот отличный пользовательский компонент, который, кажется, способен сделать все, что вам нужно:

http://dev.doukasd.com/2011/04/infinite-scrolling-dial-control-for-ios/

Это не бесконечный, а скорее модифицированный UITableView с огромнымклетки.

0 голосов
/ 15 июня 2011

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

...