如何为UIScrollView指示器使用非标准颜色?

时间:2010-10-07 14:07:51

标签: iphone cocoa-touch uiscrollview

UI提供3 options for UIScrollViewIndicatorStyle,但我想让UIScrollView指标变为红色,这不是标准样式之一。

我可以这样做吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:1)

YES!你可以

  

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中   委托方法。

enter image description here Demo available on GitHub - https://github.com/ioshacks/UIScrollViewIndicatorColor

答案 1 :(得分:0)

我肯定不是你想要的答案,但你可以在滚动视图的顶部放置一个uiview(用于滚动指示器)然后添加一个委托来监听滚动滚动视图的时间,然后更新位置的UIView