带有 UIScrollView 的 ECSlidingViewController

Posted

技术标签:

【中文标题】带有 UIScrollView 的 ECSlidingViewController【英文标题】:ECSlidingViewController with UIScrollView 【发布时间】:2015-03-02 11:08:54 【问题描述】:

我已经设置了 ECSlidingViewController,如示例中所示。它适用于标准视图控制器没有问题。但是app的主vc有如下层次结构:

    导航控制器 ContentController 的 UIView 这个控制器持有一个 UIScrollView 水平分页 此 UIScrollView 包含 n 个 UICollectionViewController(s) 和 NHBalancedLayout(垂直)

问题是 panGesture 无法识别,因为当我在 scrollView 的第一页上时,我认为向右的另一个手势打开slidingViewController 会起作用?我已经玩过类似的方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
- (BOOL)shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
- (BOOL)shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

我还查看了 ECSlidingViewcontroller wiki - 但还没有找到解决方案 :-/。 它是应用程序的最后一种 showStopper :-/.

帮助:-/

这就是我将 panGesture 添加到 contentController 的方式 - 我为所有 contentControllers 提供了一个基类:

- (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];

【问题讨论】:

【参考方案1】:

OK 找到了一个非常适合我的解决方法。我只是在 contentController 的左边缘添加一个透明视图,将 panGesture 转发到动态转换委托。如果识别出点击而不是平移-> 在这种情况下,我要求平移手势识别失败,以捕捉 collectionView 中相应视图上的点击。 -> 按预期工作,不会对可用性产生负面影响。

【讨论】:

遇到同样的问题。你能显示你的代码吗?谢谢你:) 我被困在一个地方..当我们打开滑块菜单时,一些(左滑块)右侧有一些空间。我希望当用户点击 reaming 位置时,滑块会自动关闭..我该怎么做呢

以上是关于带有 UIScrollView 的 ECSlidingViewController的主要内容,如果未能解决你的问题,请参考以下文章

带有 IUViewController 的 UIScrollView 拖放对象

带有 ViewControllers 的 UIScrollView

带有 UIScrollView 的纯自动布局

带有 UIScrollView 的 ECSlidingViewController

带有 UIScrollView 的 UIPanGestureRecognizer

带有背景图像的 UIScrollView