我只能找到是否要显示滚动条或不使用
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;
答案 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;