2

私のプロジェクトでは、実行時にuiwebviewをuiscrollviewに追加および削除する必要があります。つまり、ページングが有効になっているときに水平方向(左または右)にスクロールすると、新しいビューがuiscrollviewに追加され、そこをトラバースします。

uiscrollviewで左または右のスクロールを検出することは可能ですか?

Plzは、可能な限り最良のソリューション、サンプルコード、またはチュートリアルを教えてくれます。

前もって感謝します

4

1 に答える 1

3

このような場合、スクロールビューでページングを有効にする必要があります。

サイズが320x480のスクロールビューがあり、各ページのサイズが320x480である10ページを表示することになっているとすると、スクロールビューのコンテンツサイズは320 * 10x480になります。

現在のページを判別する最良の方法は、スクロールビューのコンテンツオフセット値を使用することです。したがって、最初は、scrollviewが1ページ目を表示しているとき、そのコンテンツオフセットはx = 0、y=0になります。

2ページ目の場合x=320、y=0。したがって、contentOffset.xをページ幅で割ることにより、現在のページ値を取得できます。したがって、0/320 = 0は、最初のページを意味します。320/320 = 1は、2ページ目を意味します。

したがって、現在のページ値がある場合は、次のように、スクロールビューがどちらの方向に移動しているかを判断できます。

-(void) scrollViewDidScroll:(UIScrollView *)scrollView{

    int currentPageOffset = currentPage * PAGE_WIDTH;
    if (self.pageScrollView.contentOffset.x >= currentPageOffset + PAGE_WIDTH) {
        // Scroll in right direction. Reached the next page offset.
        // Settings for loading the next page.
        currentPage = self.pageScrollView.contentOffset.x/PAGE_WIDTH;
    }else if (self.pageScrollView.contentOffset.x <= currentPageOffset - PAGE_WIDTH) {
        // Scroll in left direction. Reached the previous page offset.
        // Setting for loading the previous page.
        currentPage = self.pageScrollView.contentOffset.x/PAGE_WIDTH;
    }

}
于 2011-07-12T12:49:04.513 に答える