2014-02-15 105 views
2

我想在ECSLidingViewController2中设置缩放动画的滑动转换。ECSlidingViewController缩放动画

就像在TransitionFun例子(https://github.com/ECSlidingViewController/ECSlidingViewController/blob/master/Examples/TransitionFun/TransitionFun/METransitionsViewController.m),我在我的冠捷NavigationController的viewDidLoad中这样做:

id<ECSlidingViewControllerDelegate> transition = [[MEZoomAnimationController alloc] init]; 
self.slidingViewController.delegate = transition; 

self.slidingViewController.topViewAnchoredGesture = ECSlidingViewControllerAnchoredGestureTapping | ECSlidingViewControllerAnchoredGesturePanning; 
self.slidingViewController.customAnchoredGestures = @[]; 
[self.navigationController.view removeGestureRecognizer:self.dynamicTransitionPanGesture]; 
[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture]; 

我采用的NavigationController头文件中的ECSlidingViewControllerDelegate协议。

但它崩溃的ECSlidingViewController.m,在第一,如果这种方法的条件下,我得到一个EXC_BAD_ACCESS(1)错误:有同样的问题

- (CGRect)frameFromDelegateForViewController:(UIViewController *)viewController 
         topViewPosition:(ECSlidingViewControllerTopViewPosition)topViewPosition { 
    CGRect frame = CGRectInfinite; 

    if ([(NSObject *)self.delegate respondsToSelector:@selector(slidingViewController:layoutControllerForTopViewPosition:)]) { 
    id<ECSlidingViewControllerLayout> layoutController = [self.delegate slidingViewController:self 
                  layoutControllerForTopViewPosition:topViewPosition]; 

    if (layoutController) { 
     frame = [layoutController slidingViewController:self 
           frameForViewController:viewController 
             topViewPosition:topViewPosition]; 
    } 
} 

return frame; 

}

有人吗? THX

回答

1

这是我在viewDidLoad中做的事:我的视图控制器的方法和它的伟大工程:

id<ECSlidingViewControllerDelegate> transition = self.zoomAnimationController; 
self.slidingViewController.delegate = transition; 
self.slidingViewController.topViewAnchoredGesture = ECSlidingViewControllerAnchoredGestureTapping | ECSlidingViewControllerAnchoredGesturePanning; 
self.slidingViewController.customAnchoredGestures = @[]; 
[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture]; 

如果像我一样,你是不是想实现动态化,你应该摆脱你有这行的:

[self.navigationController.viewremoveGestureRecognizer:self.dynamicTransitionPanGesture]; 

恕我直言,其因为你还没有真正设置dynamicTransitionPanGesture手势识别什么可能会导致您的EXC_BAD_ACCESS(1)错误。

+0

你是对的,它的工作原理。 Thx为您提供帮助! –

+0

谢谢,你的代码为我工作。但我认为'EXC_BAD_ACCES –