在UITableView,iphone中更改滚动条的宽度和颜色

时间:2011-11-02 06:33:11

标签: iphone uitableview scrollbar

我只能找到是否要显示滚动条或不使用

tableView.showsVerticalScrollIndicator = YES/NO;

但是如何自定义滚动条的颜色,宽度以及其他功能?

非常感谢任何帮助。

编辑:

我从代码片段中得到了这个想法,其中必须在MKMapKit中找到Google徽标并将其重新定位到某处,以便它仍然可见。 通过以下方法,可以将自定义图像设置为UItbaleview的滚动条。但我没有发现改变滚动条的大小。

-(void) ViewDidLoad
{
UIImageView *testView = [self.tableView.subviews objectAtIndex:1];
    UIImage *Img = [UIImage imageNamed:@"image.png"];
    [testView setImage:Img];
}

编辑: 根据Nekto的建议,您可以使用以下内容来更改宽度。

CGRect frame = testView.frame; 
frame.size.width = 10; //set any value you want.
testView.frame = frame;

8 个答案:

答案 0 :(得分:39)

您只能设置滚动指示器的样式:

  

滚动指示器的样式。

@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle

<强>样式:

  

滚动指示器样式   滚动指示器的样式。您可以使用这些常量来设置indicatorStyle样式的值。

typedef enum {
    UIScrollViewIndicatorStyleDefault,
    UIScrollViewIndicatorStyleBlack,
    UIScrollViewIndicatorStyleWhite
} UIScrollViewIndicatorStyle;

例如:

tableView.indicatorStyle = UIScrollViewIndicatorStyleBlack;

答案 1 :(得分:7)

您可以使用以下方式更改滚动指示器颜色:

tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite;

希望这有帮助。

答案 2 :(得分:3)

您可以将这个出色的开源自定义滚动条添加到您的项目中,它完全可以自定义: https://github.com/BasheerSience/BRScrollBar

答案 3 :(得分:2)

Swift-3,4

如果您无法覆盖方法“ scrollViewDidScroll”(可能是您将其用于其他功能或分页),请尝试使用此方法!

func setScrollIndicatorColor(color: UIColor) {
        for view in self.tableView.subviews {
            if view.isKind(of: UIImageView.self),
                let imageView = view as? UIImageView,
                let _ = imageView.image  {
                imageView.image = nil
                view.backgroundColor = color
            }
        }

        self.tableView.flashScrollIndicators()
    }

在viewDidAppear()中,您可以调用此方法。

答案 4 :(得分:1)

您可以隐藏原始滚动条并使用自定义滚动条滚动。

– (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 

可用于滚动内容,只需将自定义栏添加到表格中即可。

答案 5 :(得分:1)

对于Swift 3

collectionView.indicatorStyle = UIScrollViewIndicatorStyle.white

答案 6 :(得分:0)

我确实找不到任何其他方式,但是:

UITableView *v;
[v setIndicatorStyle:<#(UIScrollViewIndicatorStyle)#>];

只有3种款式可供选择。如果只有你会找到实现自己的UIScrollViewIndicatorStyle的方法,但我甚至无法想象如何做到这一点:它们是在UIKit框架中深层实现的(在UIScrollView.h中声明),你只能设置一个标志,女巫将UIScrollView使用它来了解,使用什么样的样式。所以,我看不到任何其他方式:你需要以某种方式实现新的风格并在那里标记。它有可能吗?

答案 7 :(得分:0)

使用3种默认颜色样式更改指示颜色。

TextField.indicatorStyle = UIScrollViewIndicatorStyleWhite;