现代模态观与animation效果
在我的iPhone应用程序中,我需要显示具有透明背景的模式视图,它应该以animationforms出现,就像它从视图中心出现并且其大小正在增加。
类似于“绘制东西”的iPhone应用程序,当我们点击设置button。
我该怎么做呢?
您可以执行以下4种转换样式之一:
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; viewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; viewController.modalTransitionStyle = UIModalTransitionStylePartialCurl; [self presentModalViewController:viewController animated:YES];
如果你想要的东西不包括在这些默认值中,你将不得不build立自己的自定义animation来呈现模态视图。 像以下但显然是你想要的风格。
UIModalTransitionStyle水平移动
比方说,你有一个viewController这就是所谓的aScoreSheet,你想呈现。 尝试在视图控制器中定义这个方法来完成呈现。
-(void) presentTransparentModalViewController: (ScoreSheet *) aViewController { scoreSheet = aViewController; UIView *view = aViewController.view; view.opaque = NO; [view.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { UIView *each = obj; each.opaque = NO; }]; [self.view addSubview:view]; view.center = CGPointMake(160, 800); //for iPhone [UIView animateWithDuration:0.9 delay:0 options:UIViewAnimationCurveEaseInOut animations:^{ view.center = CGPointMake(160, 240); } completion:^(BOOL finished) { self.view.userInteractionEnabled=YES; }]; }
然后解散控制器:
-(void) dismissTransparentModalViewControllerAnimated:(BOOL) animated{ if (animated) { [UIView animateWithDuration:0.4 animations:^{ scoreSheet.view.center = CGPointMake(scoreSheet.view.center.x, scoreSheet.view.center.y + 480); } completion:^(BOOL finished) { [scoreSheet.view removeFromSuperview]; scoreSheet = nil; }]; } }
不是一个完整的答案,但也许你可以看看这个开源的库:
https://github.com/Split82/HMGLTransitions
它有一些自定义的模态转换,可能不完全是你正在寻找的,但你可以通过HMGLTransition
来轻松添加转换。
希望这可以帮助
- iOS在图像上滑动图像,显示下面的图像。 (A-la jQuery.slide())
- UITableViewRowAnimation被忽略
- UIImageViewanimation无法正常工作
- 如何绕着X轴翻转UIView,同时切换子视图
- 在Swift中animationMapKit注释坐标变化?
- 在核心animation或核心graphics上创build简单的橡皮擦效果有多困难?
- 旋转后重新初始化UIView视图和子视图
- 字母UILabelanimation?
- animationControllerForPresentedController和animateTransition之间的自定义过渡animation未知延迟