2015-03-26 1 views
1

Я смотрю на stackoverflow и google, пытаясь найти этот ответ, я не могу найти ничего, говорящего «да» или «нет» на нем.Есть ли способ создать удобную полосу прокрутки для родного приложения IOS?

У меня есть приложение, которое имеет примерно 90 000 ячеек в одном представлении и прокручивается с помощью жестов, но ужасно медленно, как вы думаете.

Теперь реализована функция поиска, которая быстро ускоряет поиск, но клиент также хотел бы добавить интерактивную полосу прокрутки, как вы видите в обычных веб-браузерах. Это приложение создано как на IOS, так и на Android, версия Android смогла реализовать полосу прокрутки, и, хотя я не думаю, что ее нужно иметь, чего хочет клиент, клиент получает (если, конечно, это возможно) ,

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

ответ

2

Я бы просто использовать UISlider и повернуть его на 90 градусов:

CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI*0.5); 
scrollSlider.transform = transform; 

Затем использовать свое собственное изображение для более скроллинга, как внешний вид (пустые картинки в качестве фона и различных фасонных пальца изображения) с помощью этой функции :

- setMaximumTrackImage:forState: 
– setMinimumTrackImage:forState: 
– setThumbImage:forState: 

После этого вы можете использовать свойство value ползунка, чтобы отрегулировать положение прокрутки.

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

-scrollViewDidScroll: 

Чтобы получить математику немного легче, вы можете установить минимальное значение ползунка - 0, а максимальное значение - scrollView.contentSize.height - scrollView.size.height.

slider.value может использоваться непосредственно как scrollView.contentOffset таким образом.

+0

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

+0

В iOS-инфраструктуре нет реальной сенсорной полосы прокрутки. Вы можете реализовать свой собственный вид с изображением, которое вы перетаскиваете в виде скроллера. Но в итоге вы просто переустановите новый UISlider. UISlider - это просто класс, который интерполирует шаги между его минимальным и максимальным значением. Таким образом, нет никакой разницы в реальной полосе прокрутки на других ОС. – Thyraz

+0

Хорошо, круто, я разрешу, чтобы вопрос был открыт до завтра, а затем пометьте ваш ответ как правильный, если ничего не появится. Еще раз спасибо! – TaylorAllred

Смежные вопросы