我遇到的情况是我有使用深色背景的应用程序内HTML文档,但UIWebView的默认滚动指示器在该背景中丢失。以下是此示例:
使用UIScrollView,UIWebView的行为类似,您可以将indicatorStyle属性设置为UIScrollViewIndicatorStyleWhite,从而产生所需的行为:
我似乎无法在UIWebView的公开界面中找到类似的属性。是否有CSS技巧或其他方法强制滚动指示器更轻松的风格?
从iOS 5.0开始,现在可以通过访问“scrollview”属性来自定义Web视图的滚动行为,以实现所需的功能:
webView.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
如果您确实要扫描子视图并尝试在将来发生更改时优雅地失败,则此当前有效:
//set a white scroll bar
for (UIView *subview in [webView subviews]) {
if ([subview isKindOfClass:NSClassFromString(@"UIScroller")] || [subview isKindOfClass:NSClassFromString(@"UIScrollView")]) {
if ([subview respondsToSelector:@selector(setIndicatorStyle:)]) {
[(UIScrollView *)subview setIndicatorStyle:UIScrollViewIndicatorStyleWhite];
}
break;
}
}
虽然如果setIndicatorStyle:改变为期望一个非枚举值,事情仍然会在将来破裂......但我怀疑会发生这种情况。
扫描子视图并测试UIScrollView。然后,您可以以编程方式设置指标。
2.x SDK中没有此公共API。在3.0中提出错误/案例/雷达要求它。