带有 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 的 ECSlidingViewController