2016-04-18 14 views
8

pageViewControllerの中にtableViewがあります。セルをスワイプすると、そのセルを削除するオプションが表示される特定の状況でのみ認識されます非常に迅速かつ積極的にスワイプした。スワイプでテーブルビューで削除するにはpageViewController内にある

スワイプジェスチャーがpageViewまたはtableViewのいずれであるかわからないため、これが起こっていると思います。削除ボタンのスムーズな表示を可能にするためにスワイプジェスチャーがどこで起きているかを具体的に判断する方法はありますか?

+0

編集ボタンを追加できます。次に、編集モードでページコントローラーのスワイプジェスチャーを無効にすることができます(デリゲートのnilを設定します)。 – Maik639

答えて

3

私は同じ問題を抱えていました。私はうまくいくソリューションを見つけました。

これをあなたのUIPageViewControllerviewDidLoad funcに入れてください。

if let myView = view?.subviews.first as? UIScrollView { 
    myView.canCancelContentTouches = false 
} 

PageViewControllerには、ジェスチャを処理する自動生成サブビューがあります。これらのサブビューがコンテンツのタッチをキャンセルするのを防ぐことができます。テーブルビューのジェスチャ要件を満たしていないスワイプをページスワイプとして解釈しながら、テーブルビューは削除ボタンのスワイプをキャプチャできます。削除ボタンは、「積極的に」押したままスワイプまたはスワイプした場合に表示されます。

+0

Iveが私のUIPageViewController viewDidLoadにこれを追加しました。時にはスワイプがテーブルビューでの表示を削除することがありますが、ほとんどの場合、次のページにスワイプします.... – raklos

関連する問題