【问题标题】:How to show UIWebView's scroll indicators如何显示 UIWebView 的滚动指示器
【发布时间】:2009-07-27 15:13:14
【问题描述】:

我有一个带有一些内容的UIWebView,我需要让它的滚动指示器在短时间内可见(例如[UIScrollView flashScrollIndicators])。

知道怎么做吗?

【问题讨论】:

    标签: ios objective-c uiwebview


    【解决方案1】:

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

     [webView.scrollView flashScrollIndicators];
    

    【讨论】:

      【解决方案2】:

      没有真正的方法可以通过已发布的 API 执行此操作,但是我认为在这种情况下,猜测 UIScrollView 子视图是可以的,只要您确保您的应用程序在找不到时不会崩溃UIScrollView:

      UIView* scrollView = [webView.subviews objectAtIndex:0];
      if ([scrollView isKindOfClass:[UIScrollView class]) {
        [((UIScrollView*)scrollView) flashScrollIndicators];
      } else {
        // If Apple changes the view hierarchy you won't get
        // a flash, but that doesn't matter too much
      }
      

      编辑:上述方法不起作用,因为UIWebView 的第一个子视图是UIScroller,而不是UIScrollView(我的记忆可能在欺骗我)。不妨试试以下方法?

      UIView* uiScroller = [webView.subviews objectAtIndex:0];
      if ([uiScroller respondsToSelector:@selector(displayScrollerIndicators)]) {
        [((UIScrollView*)uiScroller) performSelector:@selector(displayScrollerIndicators)];
      } else {
        // If Apple changes the view hierarchy you won't get
        // a flash, but that doesn't matter too much
      }
      

      【讨论】:

      • UIWebView 没有“UIScrollView”子视图它只有“UIScroller”子视图并且 UIScroller 没有 flashScrollIndicators 方法((
      • 一直都是这样吗?我似乎记得这在 iPhone OS 2.x 中工作。
      • 你不会得到这个批准,因为 UIScroller 是私有 API。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多