Tag: 自定义转换

iOS 9自定义转换 – animationControllerForDismissedController不被调用

我是iOS开发的新手,最近遇到了这个问题,在iOS 9中进行自定义转换。 我有一个对象符合UIViewControllerTransitioningDelegate协议,并实现animationControllerForDismissedController ,如下所示: @implementation MyCustomizedTransitioningDelegate #pragma mark – UIViewControllerTransitioningDelegate – (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed { MyCustomizedTransitionAnimator *animator = [[MyCustomizedTransitionAnimator alloc] init]; animator.presenting = NO; return animator; } @end 触发模式转换的过程如下所示: @implementation MyViewController #pragma mark – Initializers + (MyCustomizedTransitioningDelegate *)modalTransitioningDelegateSingletonInstance; { static MyCustomizedTransitioningDelegate *delegateInst = nil; static dispatch_once_t onceToken = 0; dispatch_once(&onceToken, ^{ delegateInst = [[MyCustomizedTransitioningDelegate alloc] init]; […]

如何为自定义容器控制器转换“取消”视图外观转换

我创build了一个类似于UIPageViewController的自定义容器控制器,以便我可以实现一些自定义转换和数据源逻辑。 我试图模仿新的客户视图控制器转换API在iOS 7中的工作方式,除了在取消转换时使用视图外观callback时出现的一些恼人的怪癖时,它运行良好。 也就是说,在进行转换的时候,究竟应该在什么时候开始出现转换beginAppearanceTransition:animated:和endAppearanceTransition被调用? 我的自定义容器类有这样的代码: – (BOOL)shouldAutomaticallyForwardAppearanceMethods { return NO; // Since the automatic callbacks are wrong for our custom transition. } – (void)startTransition:(CustomTransitionContext *)context { // Get reference to the view controllers involved in the transition. UIViewController *oldVC = [context viewControllerForKey:UITransitionContextFromViewController]; UIViewController *newVC = [context UITransitionContextToViewController]; // Prepare parent/child relationship changes. [oldVC willMoveToParentViewController:nil]; [self […]

如何在iOS 7自定义转换的顶部显示一个半模式视图控制器

我将如何去在主视图控制器的顶部呈现“半视图”控制器? 要求:提供第二个视图控制器,滑过主视图控制器的顶部。 – 第二个视图控制器应该只显示超过一半的主视图控制器 – 主视图控制器应该保持在第二个视图控制器后面(透明背景,而不是在下面显示黑色) – 第二个视图控制器应该animation与animation类似于模态垂直覆盖,或iOS 7自定义转换 – 当第二个视图控制器处于活动状态(即第二个视图控制器不覆盖整个主视图控制器)时,用户仍然可以与主视图控制器上的button进行交互。r – 第二个视图控制器具有自己的复杂逻辑(不能简单视图) – 故事板,Segges,仅限iOS 7 – 仅iPhone,而不是iPad。 我已经尝试使用模式视图控制器,但是这不允许与主视图控制器交互。 有人可以提供一个如何使用iOS7自定义转换或其他方法做到这一点的例子。

呈现一个透明的模态UIViewController

我试图自己做一个自定义alertView(对于iOS7 +),但我挣扎alertView演示。 我有一个UIViewController与黑色背景(alpha设置为0.25f),并将alertView作为子视图。 当我想显示alertView时,我以模态方式呈现viewController: -(void) show { UIWindow* window = [[UIApplication sharedApplication] keyWindow]; self.modalTransitionStyle = UIModalPresentationCustom; self.transitioningDelegate = self; [window.rootViewController presentViewController:self animated:YES completion:nil]; } 这是我的animation师对象: -(NSTimeInterval) transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext { NSLog(@"%s",__PRETTY_FUNCTION__); return 2; } -(void) animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext { NSLog(@"%s",__PRETTY_FUNCTION__); UIView* toView = [transitionContext viewForKey:UITransitionContextToViewKey]; toView.alpha = 0; UIView* container = [transitionContext containerView]; [container addSubview:toView]; [UIView animateWithDuration:[self transitionDuration:transitionContext] animations:^{ […]

导航控制器自定义转换animation

我一直在遵循一些教程来创build自定义animation,同时从一个视图转换到另一个视图。 我从这里使用自定义segue的testing项目工作正常,但有人告诉我,不再鼓励自定义赛格内自定义animation,我应该使用UIViewControllerAnimatedTransitioning 。 我遵循了几个使用这个协议的教程,但都是关于模态表示的(例如本教程 )。 我想要做的是在导航控制器树中推一个segue,但是当我尝试用show(push)segue做同样的事情时,它不再工作。 请告诉我在导航控制器中执行从一个视图到另一个视图的自定义过渡animation的正确方法。 无论如何,我可以使用所有过渡animation的一种方法吗? 如果有一天我想要做相同的animation,但是最终不得不复制代码两次,才能在模态与控制器之间进行转换,那将会很尴尬。