Настройка полос прокрутки в UIScrollView - PullRequest
0 голосов
/ 21 декабря 2011

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

Одним из решений, которое мне понравилось, было использование простой категории UIScrollView и доступ к полосам прокрутки в качестве подпредставлений UIScrollView: http://leonov.co/2011/04/uiscrollviews-scrollbars-customization/#comment-7909 По какой-то причине, однако, это не работает для меня. Когда я создаю UIScrollView и получаю его массив subviews, там отображаются только те представления, которые я вручную добавляю в scrollview. Я не могу получить доступ к полосам прокрутки, перебирая массив 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, «Количество просмотров - X». Есть идеи?

1 Ответ

1 голос
/ 14 января 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...