jcd*_*dmb 17 iphone animation catransition uiviewanimationtransition
我使用一个很好的方法来解雇我的模态视图控制器:
[self dismissModalViewControllerWithTransition:2];
Run Code Online (Sandbox Code Playgroud)
这使得幻灯片从左向右过渡,就像导航控制器弹出视图一样.
由于此方法是非公开方法,因此Apple不会接受它.如何在我的代码中编程这种动画(从左到右滑动,关闭模态视图,从右到左滑动以呈现模态视图)?
提前致谢
jcd*_*dmb 42
我接受了Safecase的答案,但我想在这里发布我的最终解决方案:
1)为了呈现一个从右到左过渡的模态视图控制器,我写了以下方法:
-(void) presentModalView:(UIViewController *)controller {
CATransition *transition = [CATransition animation];
transition.duration = 0.35;
transition.timingFunction =
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromRight;
// NSLog(@"%s: self.view.window=%@", _func_, self.view.window);
UIView *containerView = self.view.window;
[containerView.layer addAnimation:transition forKey:nil];
[self presentModalViewController:controller animated:NO];
}
Run Code Online (Sandbox Code Playgroud)
2)使用从左到右的幻灯片转换关闭模态视图:
-(void) dismissMe {
CATransition *transition = [CATransition animation];
transition.duration = 0.35;
transition.timingFunction =
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromLeft;
// NSLog(@"%s: controller.view.window=%@", _func_, controller.view.window);
UIView *containerView = self.view.window;
[containerView.layer addAnimation:transition forKey:nil];
[self dismissModalViewControllerAnimated:NO];
}
Run Code Online (Sandbox Code Playgroud)
多谢你们!
试试这个:
我假设您从视图控制器1中解除视图控制器2.在视图控制器2中,您正在使用它
[self dismissModalViewControlleAnimated: NO]];
Run Code Online (Sandbox Code Playgroud)
现在在第一个视图控制器中,在viewWillAppear:方法中添加代码
CATransition *animation = [CATransition animation];
[animation setDelegate:self];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromLeft];
[animation setDuration:0.50];
[animation setTimingFunction:
[CAMediaTimingFunction functionWithName:
kCAMediaTimingFunctionEaseInEaseOut]];
[self.view.layer addAnimation:animation forKey:kCATransition];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9955 次 |
| 最近记录: |