私の UIWebView は垂直スクロールを許可しないはずです。ただし、水平スクロールは可能でなければなりません。
ドキュメントを調べましたが、ヒントが見つかりませんでした。
次のコードは両方のスクロール方向を無効にしますが、垂直方向のみを無効にしたい:
myWebView.scrollView.scrollEnabled = NO;
この問題を解決するにはどうすればよいですか?
私の UIWebView は垂直スクロールを許可しないはずです。ただし、水平スクロールは可能でなければなりません。
ドキュメントを調べましたが、ヒントが見つかりませんでした。
次のコードは両方のスクロール方向を無効にしますが、垂直方向のみを無効にしたい:
myWebView.scrollView.scrollEnabled = NO;
この問題を解決するにはどうすればよいですか?
水平スクロールを有効にし、垂直スクロールを無効にします。
myWebView.scrollView.delegate = self;
[myWebView.scrollView setShowsVerticalScrollIndicator:NO];
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.y > 0 || scrollView.contentOffset.y < 0 )
scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x, 0);
}
2行目は、垂直スクロールインジケーターを非表示にします。「scrollView.contentOffset.y<ゼロ」かどうかを確認すると、下にスクロールしようとしたときにバウンスが無効になります。次のこともできます:scrollView.bounces=NO同じことをします!! Rama Raoの答えを見るだけで、彼のコードは、垂直方向にスクロールしようとした瞬間にscrollViewを(0.0)にリセットし、それによって水平位置から離れてしまうことがわかります。これは良くありません。
垂直スクロールを有効にし、水平スクロールを無効にします。
myWebView.scrollView.delegate = self;
[myWebview.scrollView setShowsHorizontalScrollIndicator:NO];
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.x > 0)
scrollView.contentOffset = CGPointMake(0, scrollView.contentOffset.y);
}
平和
完全に機能させるには、次のように記述します。
webview.scrollView.delegate = self;
[webview.scrollView setShowsHorizontalScrollIndicator:NO];
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.x > 0)
scrollView.contentOffset = CGPointMake(0, scrollView.contentOffset.y);
if (scrollView.contentOffset.x < 0)
scrollView.contentOffset = CGPointMake(0, scrollView.contentOffset.y);
}
最後の 2 行を追加したのは、pnizzle のように書くと、右から左にはスクロールできず、左から右にはスクロールできないからです。
幸運を
-(void) scrollViewDidScroll:(UIScrollView *)scrollView{
if (scrollView.contentOffset.y>web.frame.origin.x) {
scrollView.contentOffset = CGPointMake(0, 0);
}
}
このようにして、問題を解決できます。以下のように、グローバル scrollview オブジェクトを取得します。
UIScrollView* scrollView =web.scrollView;
デリゲートをスクロール ビューに設定-(void) scrollViewDidScroll:(UIScrollView *)scrollView
すると、呼び出されて結果を取得できます。両バージョン(iOS 5 & iOS 4.2)で確認しました
scrollEnabled == YES のままにします。スクロール ビューは、コンテンツのサイズに基づいてスクロールを制限します。水平スクロールのみを許可するには、次のように contentSize を設定します。
scrollView.contentSize = CGSizeMake(1000, scrollView.bounds.size.height);
幅は、スクロール ビュー内でスクロールされているものの幅に関連付ける必要があります。