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

更改iphone UITableView中滚动条的宽度和颜色,iphone,uitableview,scrollbar,Iphone,Uitableview,Scrollbar,我只能找到是否要显示滚动条或不使用 tableView.showsVerticalScrollIndicator = YES/NO; 但是我如何定制滚动条的颜色、宽度和其他功能(如果可能的话) 任何帮助都将不胜感激 编辑: 我是从代码片段中得到这个想法的,在代码片段中,人们必须在MKMapKit中找到Google徽标,并将其重新定位到某个地方,使其保持可见。 通过以下方法,可以将自定义图像设置为视图的滚动条。但我并没有发现改变滚动条大小的问题 -(void) ViewDidLoad { UII

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

tableView.showsVerticalScrollIndicator = YES/NO;
但是我如何定制滚动条的颜色、宽度和其他功能(如果可能的话)

任何帮助都将不胜感激

编辑:

我是从代码片段中得到这个想法的,在代码片段中,人们必须在MKMapKit中找到Google徽标,并将其重新定位到某个地方,使其保持可见。 通过以下方法,可以将自定义图像设置为视图的滚动条。但我并没有发现改变滚动条大小的问题

-(void) ViewDidLoad
{
UIImageView *testView = [self.tableView.subviews objectAtIndex:1];
    UIImage *Img = [UIImage imageNamed:@"image.png"];
    [testView setImage:Img];
}
– (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 
编辑: 根据Nekto的建议,您可以使用以下方法更改宽度

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

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

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

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

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

tableView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
滚动指示器的样式

样式:

tableView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
滚动指示器样式 滚动指示器的样式。您可以使用这些常量设置指示符样式的值

例如:

tableView.indicatorStyle = UIScrollViewIndicatorStyleBlack;

除了这个,我没找到别的办法:

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

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

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

tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite;

希望这有帮助。

您可以将这个伟大的开源自定义滚动条添加到您的项目中,它完全可以定制:

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

TextField.indicatorStyle=UIScrollViewIndicatorStyleWhite

对于Swift 3

collectionView.indicatorStyle=UIScrollViewIndicatorStyle.white

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

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

非常感谢。我尝试了tableView.UIScrollViewIndicatorStyle=UIScrollViewIndicatorStyleBlack;这导致编译错误“未找到UItableView的属性UIScrollViewIndicatorStyle”。我在这里遗漏了什么吗?在我的回答中增加了一个例子。试试看,它正在工作。非常感谢你的朋友。顺便说一句,我是“和平号出版社”的超级粉丝,很高兴与来自莫斯科的人交谈。您好。。!!,请看我答案中的编辑(我们可以改变颜色!!)。你们认为通过某种方法我可以改变滚动条的大小吗。(但我尝试了tempView.frame.size.width=10;),但给出了宽度不可分配的编译错误属性try:
CGRect frame=tempView.frame;框架尺寸宽度=10;tempView.frame=frame感谢哨兵提供您的想法。现在我也想不出任何方法来做这件事,如果我成功地创建了自定义滚动条,我会让你知道的。顺便问一下:你为什么需要这个?只是定制,还是一些功能?您可以在滚动条的顶部实现新的子视图,并使用它做任何您想做的事情。它只会隐藏默认指示器。但是在这种情况下,你需要做大量的工作才能很好地工作。哈!那么,指标是可到达的,它在指标1处?好极了!感谢马纳利的回复。我需要时间来实施你的建议。我会让你知道我以上的方法适合我。非常感谢巴希尔。。。我真正需要的是什么我知道了…所以你值得投票…这不管用