Ответ 1
Вы можете использовать свойство "indicatorStyle":
[scrollView1 setBackgroundColor:[UIColor blackColor]];
scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite;
У меня есть UIScrollView, который я применяю на черном фоне, который смешивается в полосе прокрутки. Я искал способ изменить цвет прокрутки на белый, но я не могу понять это. Правильно ли это можно сделать?
Вы можете использовать свойство "indicatorStyle":
[scrollView1 setBackgroundColor:[UIColor blackColor]];
scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite;
Оба индикатора 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 делегата.
//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()
}