3

内にスワイプ可能なテーブルセルを持つプロジェクトに取り組んでいますUIPageViewController。はUIPageViewController's UIScrollView、最初は無効になっています。セルをスワイプすると、 a を介してゆっくりとUIPanGestureRecognizerボタンが表示され、ボタンが完全に表示されると、Swipeable Table Cell はUIPageViewController(そのデリゲート) にメッセージを送信してスクロールを有効にします。

スクロールが有効になってUIPageViewControllerいる場合、ユーザーがまだ指をスワイプしている間にスクロールを開始する必要があります。この機能は、右にスワイプして友達とチャットする Snapchat のようなものです。UIScrollViewしかし、有効になっていてもスクロールを開始しません。ユーザーは指を画面から離してから再び指を置き、再びスワイプして次のビューへのスクロールを開始する必要があります。にはUIPageViewController、スクロールを有効または無効にする次のコードがあります。

+(void)enableScrolling
{
    NSLog(@"supposed to enable");
    [myScrollView setScrollEnabled:YES];
    if (myScrollView.isScrollEnabled == YES) {
        NSLog(@"Scroll view is enabled");
    }
    //[myScrollView.panGestureRecognizer setState:(UIGestureRecognizerState *) UIGestureRecognizerStateBegan];
}

+(void)disableScrolling
{
    NSLog(@"supposed to disable");
    [myScrollView setScrollEnabled:NO];
    if (myScrollView.isScrollEnabled == NO) {
        NSLog(@"Scroll view is disabled");
    }
}

UIPageViewController's UIPanGestureRecognizerユーザーがまだスワイプしている場合、スクロールを開始するように何らかの方法で指示する必要があるかどうか疑問に思っていますか? 私はこの仕事をするのに非常に近いです。アドバイスをいただければ幸いです。ありがとう。

編集:

ページ ビュー コントローラー クラスの enableScrolling メソッドに次のコード行を追加しました。

[myScrollView setContentOffset:[myScrollView.panGestureRecognizer translationInView:myPageViewController.view]];

これは私の更新された方法です:

+(void)enableScrolling
{
    NSLog(@"supposed to enable");
    [myScrollView setScrollEnabled:YES];
    if (myScrollView.isScrollEnabled == YES) {
        NSLog(@"Scroll view is enabled");
        [myScrollView setContentOffset:[myScrollView.panGestureRecognizer translationInView:myPageViewController.view]];
    }
}

私の理解では、スクロールビューのコンテンツオフセットを現在の位置に設定すると、スクロールが再びアクティブになるはずですが、これは画面全体を暗くするだけです。

私が間違っているかもしれないことについてのアイデアはありますか?

4

1 に答える 1

0

そのようにしていることが興味深い。作成中のアプリ テンプレートがあり、同じ機能を備えていますが、UIView を tableViewCells の上に配置し、そのビューをタッチに応答させて右にスライドさせ、その下のコンテンツを表示することにしました。特定の contentOffSet ポイントに到達すると、scrollView の有効なプロパティをアクティブにし、UIView のタッチを無効にして、次のページにスクロールできるようにします (SnapChat と同様)。参考になるかわかりませんが、私はそうしています!

于 2015-05-19T21:49:04.390 に答える