hachinoBlog

hachinobuのエンジニアライフ

UIWebViewで使用しているUIScrollViewを取得して表示コンテンツに対して色々やる方法

iOS5からUIWebView内のUIScrollViewを

//webViewはUIWebViewのインスタンス
[self.webView scrollView];

で取得できるようになった。
しかしUIWebView内のUIScrollViewはreadonlyなので値を変えたりすることは出来ない。
なので自身でUIScrollViewを生成して取得したUIWebView内のUIScrollViewを代入して使えば良い。

//scrollViewはUIScrollViewインスタンス
self.scrollView = [self.webView scrollView];
[self.scrollView setDelegate:self]; //Delegateを設定して色々やるもよし
[self.scrollView setContentOffset:CGPointMake(0.0f, 100.0f)]; //表示位置を変えてやるもよし

ちなみにiOS5以前のやり方としては

for (UIView *view in self.aWebView.subviews)  {
      if ([[[view class] description] isEqualToString:@"_UIWebViewScrollView"]) {
          self.scrollView = (UIScrollView *)view;
      }
}

こんな感じでUIWebViewから無理ぐりUIScrollViewを取ってきて後は好きにやるだけ