2011-12-21 5 views
0

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

Одно из решений, которое мне понравилось, состояло в использовании простой категории UIScrollView и для доступа к полосам прокрутки в виде представлений UIScrollView: http://leonov.co/2011/04/uiscrollviews-scrollbars-customization/#comment-7909 По какой-то причине, однако, это не работает для меня. Когда я создаю UIScrollView и получаю его массив subviews, там отображаются только те виды, которые я вручную добавляю в scrollview. Я не могу получить доступ к scrollbars, итерации через массив subviews. Например, этот код:

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10,10,100,100)]; 
scrollView.userInteractionEnabled = YES;  
scrollView.bounces = NO; 
scrollView.showsHorizontalScrollIndicator = YES; 
NSLog(@"Subviews count is %d", [[scrollView subviews] count]); 

будет регистрировать «подсчет подсчета 0». Или, если я добавлю элементы X в scrollview, «Subviews count is X». Есть идеи?

ответ

1

Представления прокрутки UIScrollbar создаются только при прокрутке представления. Они снова удаляются, когда представление перестает прокручиваться. Вероятно, поэтому вы не можете найти их в своей категории.

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

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

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