0

まず、これを検索する方法がわからなかったので、質問として投稿しました。既に質問されていたらすみません、見つけられませんでした。

scrollView を App Drawer のように見せたいので、3 つの可能なオフセット (画面など) があります。

これが私が試したコードですが、これはスクロールが終了するまでドラッグして指を離さない場合にのみ機能しますが、スワイプしても終了しません:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (scrollView.contentOffset.x >= 0 && scrollView.contentOffset.x <= 640)
{
    if (oldOffset == 0)
    {
        if (scrollView.contentOffset.x > 100 && scrollView.contentOffset.x < 420)
        {
            [scrollView setContentOffset:CGPointMake(320, 0) animated:NO];
            oldOffset = 320;
        }
        else if (scrollView.contentOffset.x > 420)
        {
            [scrollView setContentOffset:CGPointMake(640, 0) animated:NO];
            oldOffset = 640;
        }
        else
        {
            [scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
        }
    }
    else if (oldOffset == 320)
    {
        if (scrollView.contentOffset.x < 220)
        {
            [scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
            oldOffset = 0;
        }
        else if (scrollView.contentOffset.x > 420)
        {
            [scrollView setContentOffset:CGPointMake(640, 0) animated:NO];
            oldOffset = 640;
        }
        else
        {
            [scrollView setContentOffset:CGPointMake(320, 0) animated:NO];
        }
    }
    else {
        if (scrollView.contentOffset.x < 220) {
            [scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
            oldOffset = 0;
        }
        else if (scrollView.contentOffset.x < 540) {
            [scrollView setContentOffset:CGPointMake(320, 0) animated:NO];
            oldOffset = 320;
        }
        else
        {
            [scrollView setContentOffset:CGPointMake(640, 0) animated:NO];
        }
    }
}

}

4

1 に答える 1

0

UIScrollViewのプロパティpagingEnabledを に設定しYESます。有効にすると、スクロール ビューは自動的にスクロールをそのサイズ (水平スクロールの幅、垂直スクロールの高さ) の倍数に「スナップ」します。

アップルのドキュメントは次のように述べています。

ページング有効

このプロパティの値がYESの場合、ユーザーがスクロールすると、スクロール ビューはスクロール ビューの境界の倍数で停止します。デフォルト値は ですNO

于 2013-09-04T09:34:33.493 に答える