你能告诉UIWebView使用白色指示器样式吗?

问题描述 投票:8回答:4

我遇到的情况是我有使用深色背景的应用程序内HTML文档,但UIWebView的默认滚动指示器在该背景中丢失。以下是此示例:

Image of UIWebView dark scroller (来源:sunsetlakesoftware.com

使用UIScrollView,UIWebView的行为类似,您可以将indicatorStyle属性设置为UIScrollViewIndicatorStyleWhite,从而产生所需的行为:

alt text (来源:sunsetlakesoftware.com

我似乎无法在UIWebView的公开界面中找到类似的属性。是否有CSS技巧或其他方法强制滚动指示器更轻松的风格?

iphone cocoa-touch
4个回答
13
投票

从iOS 5.0开始,现在可以通过访问“scrollview”属性来自定义Web视图的滚动行为,以实现所需的功能:

webView.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;

6
投票

如果您确实要扫描子视图并尝试在将来发生更改时优雅地失败,则此当前有效:

    //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:改变为期望一个非枚举值,事情仍然会在将来破裂......但我怀疑会发生这种情况。


1
投票

扫描子视图并测试UIScrollView。然后,您可以以编程方式设置指标。


1
投票

2.x SDK中没有此公共API。在3.0中提出错误/案例/雷达要求它。

© www.soinside.com 2019 - 2024. All rights reserved.