2009-03-31 5 views
8

暗い背景を使用するアプリケーション内のHTMLドキュメントがありますが、UIWebViewのデフォルトスクロールインジケータがその背景に失われているケースがあります。以下はその一例です:のUIWebViewは、その動作に似ているUIScrollViewの、とUIWebViewに白いインジケータスタイルを使用するように指示できますか?

Image of UIWebView dark scroller http://www.sunsetlakesoftware.com/sites/default/files/so-webview.jpg

、あなたが希望する動作になりUIScrollViewIndicatorStyleWhiteにindicatorStyleプロパティを設定することができます

alt text http://www.sunsetlakesoftware.com/sites/default/files/so-scrollview.jpg

UIWebViewの公開されたインターフェイスで同様のプロパティが見つからないようです。スクロールインジケータをより軽いスタイルにするためのCSSトリックやその他の方法はありますか?

答えて

13

、1は現在、所望の機能を達成するために「scrollview」プロパティにアクセスすることにより、Web表示のスクロール動作をカスタマイズすることができます。

webView.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
1

サブビューをスキャンし、UIScrollViewをテストします。その後、インジケータをプログラマチックに設定できます。

+2

を残念ながら、のUIWebViewは、その内部のスクロールを処理するためにUIScrollerを使用しています(内部ビュー階層を横断することによって見られる)。これは私的に定義されたクラスなので、それに触れることは本当に悪い考えです。 –

1

2.x SDKにはこのための公開APIはありません。 3.0でそれを求めるバグ/ケース/レーダーを提出してください。

+0

私はそれほど恐れましたが、誰かが私が逃したトリックを持っていることを期待しました。私は機能強化要求を提出します。 –

6

あなたがサブビューをスキャンし、正常に失敗しようとしたくない場合は、何かが将来的に変更された場合、これは現在の作品:変化を期待する:setIndicatorStyleがあればはまだ将来的に破損することがあり物事ものの

//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; 
     } 
    } 

を列挙されていない値...しかし、私はそれが起こるとは思わない。 iOS版以降5.0の起動

関連する問題