ios开发app - iOS presentView相关
本文介绍了ios开发app - iOS presentView相关的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
想做一个效果:
present一个VC,不让这个VC完全覆盖之前的界面,还要能看见之前的界面。就像系统的UIAlertViewControlle
解决方案
可以通过 <UIViewControllerAnimatedTransitioning> 自定义页面转场达到该效果,具体可参考我之前写的一个小项目。
先设置 modalPresentationStyle
和 modalTransitionStyle
// iOS8+
self.modalPresentationStyle = UIModalPresentationCustom;
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
然后定一个遵从 UIViewControllerAnimatedTransitioning
协议的动画代理对象,并在内部实现以下方法。
@implementation FEPopupMenuControllerAnimatedTransitioning
- (NSTimeInterval)transitionDuration:(id <UIViewControllerContextTransitioning>)transitionContext{
return 0.25;
}
-(void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext{
}
@end
最后在 VC中 实现 UIViewControllerAnimatedTransitioning
协议,返回钢材定义的转场动画代理对象
#pragma mark <UIViewControllerAnimatedTransitioning>
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source
{
FEPopupMenuControllerAnimatedTransitioning *transitioning = [FEPopupMenuControllerAnimatedTransitioning new];
return transitioning;
}
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed
{
FEPopupMenuControllerAnimatedTransitioning * transitioning = [FEPopupMenuControllerAnimatedTransitioning new];
return transitioning;
}
详情可参考:Feelinging/FEPopupMenuController
这篇关于ios开发app - iOS presentView相关的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文