iPhone:如何从左到右执行presentModalViewController动画

hol*_*hol 11 modal-dialog modalviewcontroller presentmodalviewcontroller ios

我正在展示带动画的模型视图.默认情况下,它来自自下而上.如何让动画从左到右?我知道我可以使用导航控制器.但实际上,呈现视图不需要导航栏,并且模态呈现的视图也不需要导航栏.我仍然希望从左到右过渡.

小智 14

您可以使用以下代码在呈现视图控制器的同时从右向左进行动画处理

CATransition *transition = [CATransition animation];
            transition.duration = 0.4;
            transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
            transition.type = kCATransitionPush;
            transition.subtype = kCATransitionFromRight;
            [self.view.window.layer addAnimation:transition forKey:nil];
            [self presentViewController:localitiesView animated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

  • 令人敬畏的解决方案,这对我来说真的很好,但我遇到了一个问题.您是否知道为什么我会在视图动画中获得黑色闪光? (5认同)

Mat*_*ick 9

只有四个UIModalTransitionStyle:

UIModalTransitionStyleCoverVertical
UIModalTransitionStyleFlipHorizontal
UIModalTransitionStyleCrossDissolve
UIModalTransitionStylePartialCurl
Run Code Online (Sandbox Code Playgroud)

就像你说的那样,导航控制器将推动这种方式.如果您不想使用它,则必须自己为视图设置动画.

  • 我还没有这样做,但基本上你会实例化viewController,将其`hidden`属性设置为`YES`,呈现模态控制器,将其`frame.origin.x`移动到`-320`(纵向模式),将其`hidden`属性设置为`NO`,开始你的动画块,在这个动画块中你将`frame.origin.x`设置为0,时间为"1.0"或"1.5"秒,然后启动动画. (2认同)