Цвет скроллера UIScrollView?

У меня есть UIScrollView, который я применяю на черном фоне, который смешивается в полосе прокрутки. Я искал способ изменить цвет прокрутки на белый, но я не могу понять это. Правильно ли это можно сделать?

Ответы

Ответ 1

Вы можете использовать свойство "indicatorStyle":

[scrollView1 setBackgroundColor:[UIColor blackColor]];
scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite;

Ответ 2

Оба индикатора UIScrollView являются дополнительным представлением UIScrollView. Значит мы можем доступ под просмотр UIScrollView и изменение свойства subview.

1.Add UIScrollViewDelegate

@interface ViewController : UIViewController<UIScrollViewDelegate>
@end

2. Добавить scrollViewDidScroll в разделе реализации

-(void)scrollViewDidScroll:(UIScrollView *)scrollView1
{
    //get refrence of vertical indicator
    UIImageView *verticalIndicator = ((UIImageView *)[scrollView.subviews objectAtIndex:(scrollView.subviews.count-1)]);
    //set color to vertical indicator
    [verticalIndicator setBackgroundColor:[UIColor redColor]];


    //get refrence of horizontal indicator
    UIImageView *horizontalIndicator = ((UIImageView *)[scrollView.subviews objectAtIndex:(scrollView.subviews.count-2)]);
    //set color to horizontal indicator
    [horizontalIndicator setBackgroundColor:[UIColor blueColor]];
}

Примечание. - Поскольку эти индикаторы обновляются каждый раз при прокрутке (означает значение reset по умолчанию). Итак, мы помещаем этот код в scrollViewDidScroll делегата.

enter image description here

Ответ 3

//ScrollView Deleagate
    func scrollViewDidScroll(scrollView: UIScrollView){
        let verticalIndicator: UIImageView = (scrollView.subviews[(scrollView.subviews.count - 1)] as! UIImageView)
        verticalIndicator.backgroundColor = UIColor.redColor()


        let horizontalIndicator: UIImageView = (scrollView.subviews[(scrollView.subviews.count - 2)] as! UIImageView)
        horizontalIndicator.backgroundColor = UIColor.blueColor()
    }