UIScrollView滚动条的颜色?

16

我有一个UIScrollView,它应用了黑色背景,这与滚动条混合在一起。我一直在寻找一种方法来将滚动条的颜色更改为白色,但我无法解决这个问题。是否有一种正确的方式来做到这一点?

我有一个UIScrollView,我给它设置了黑色背景,这导致滚动条和背景混为一体。我一直在寻找将滚动条颜色更改为白色的方法,但是一直没有成功。请问有没有正确的方法来完成这个任务呢?请保留HTML标记不变。
3个回答

28

您可以使用“indicatorStyle”属性:

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

3
我永远记不住这个属性名。其他所有的属性都被称为scrollIndicatorSomething,除了这个属性。即使是自动完成也无法帮助我解决这个命名糟糕的属性。 - Echelon
2
你可以使用以下代码为项目中所有的UIScrollView设置滚动条指示器的颜色: [[UIScrollView appearance] setIndicatorStyle:UIScrollViewIndicatorStyleWhite]; - Javi Campaña
1
UIScrollView.appearance().indicatorStyle = UIScrollViewIndicatorStyle.White - johndpope

2
UIScrollView的两个指示器都是UIScrollView的子视图。因此,我们可以访问UIScrollView的子视图并更改子视图的属性。 1. 添加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]];
}

注意:因为这些指标每次滚动时都会更新(即重置为默认值)。因此,我们将此代码放在scrollViewDidScroll委托方法中。

输入图像说明


0
//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()
    }

请注意,如果您引用的子视图不是UIImageView类型,则可能会崩溃! - Frankie Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接