例に示すように、ECSlidingViewController をセットアップしました。標準のviewControllerでは問題なく動作します。ただし、アプリのメイン VC には次の階層があります。
- ナビゲーションコントローラー
- ContentController の UIView
- このコントローラーは、水平方向にページングする UIScrollView を保持します
- この UIScrollView は、NHBalancedLayout (垂直) を持つ n UICollectionViewController(s) を保持します
問題は、panGesture が認識されないことです。これは、scrollView の最初のページにいるときに、右への別のジェスチャで slideViewController が開くだけでうまくいくと思ったからですか? 私はすでに次のような方法で遊んでいます:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
- (BOOL)shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
- (BOOL)shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
ECSlidingViewcontroller wikiも調べましたが、まだ解決策が見つかりませんでした:-/。アプリの最後の種類の showStopper :-/。
ヘルプ :-/
それが、panGesture を contentController に追加する方法です。すべての contentController の baseClass があります。
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
self.transitions.dynamicTransition.slidingViewController = self.slidingViewController;
NSDictionary *transitionData = self.transitions.all[0];
id<ECSlidingViewControllerDelegate> transition = transitionData[@"transition"];
self.slidingViewController.delegate = transition;
self.slidingViewController.topViewAnchoredGesture = ECSlidingViewControllerAnchoredGestureTapping | ECSlidingViewControllerAnchoredGestureCustom;
self.slidingViewController.customAnchoredGestures = @[self.dynamicTransitionPanGesture];
[self.navigationController.view addGestureRecognizer:self.dynamicTransitionPanGesture];