在两个页面间翻转设置Animation动作的一些总结
来源:互联网 发布:淘宝客服在线回复话术 编辑:程序博客网 时间:2024/06/05 13:33
1、首先,我们来手动创建两个view以及相应的viewController。
(1)刚开始只加载一个view(第二个),若两个同时加载,第二个页面可能不能完全被遮挡。第二个页面可以通过翻转来显示。
[window addSubview:secodViewController.view];
2、要求:每个view页面都有一个按钮,按下之后切换到另一个页面,要求有炫一点的切换效果,故要对Animation属性进行一些设置
(1)helloWorldViewController.m:
1
2 mySecondViewController *SecondViewController;
3 - (void) btnClicked:(id)sender
4 {
5 SecondViewController=[[mySecondViewController alloc]
6 initWithNibName:@"SecondViewController"
7 bundle:nil];
8
9 //---创建一个翻转页面的动画---
10 //---这个动画的forView属性是UIView,应用与整个view,跟有几个页面无关,只有一个页面仍旧有效果出来---
11 [UIView beginAnimations:@"flipping view" context:nil];
12 [UIView setAnimationDuration:1];
13 [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
14 [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft//与Left相对
15 forView:self.view.superview cache:YES];//forView:UIView
16
17 //---remove the current view; essentially hiding the view---
18
19 [self.view removeFromSuperview];
//不加这句也可以正常运行,不过程序会一直叠加view,内存浪费!
21 [UIView commitAnimations];//执行动画
22
23
24 }
(2)secondViewController.m:
1 -(IBAction) btnClicked:(id)sender
2 {
3 helloWorldViewController=[[helloWorldApp alloc]initWithNibName:@"helloWorldApp"
4 bundle:nil];
5 //实例化一个控制器,因为下面addSubView要用到
6 UIAlertView *alert=[[UIAlertView alloc]initWithTitle:nil
7 message:@"你按了SecondView的按钮!"
8 delegate:self
9 cancelButtonTitle:@"done"
10 otherButtonTitles:nil];
11 [alert show];
12 [alert release];
13 //---创建一个翻转页面的动画---
14 [UIView beginAnimations:@"flipping view" context:nil];
15 [UIView setAnimationDuration:1];
16 [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
17 [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight//与Left相对
18 forView:self.view.superview cache:YES];
19
20 //---remove the current view; essentially hiding the view---
21 [self.view addSubview:helloWorldViewController.view];
22
23 [UIView commitAnimations];//执行动画
24
25
26 }
UIView是UIWindow、UIScrollBar等的超类,所以这里的self.view.superview就是UIView。所以这里的Animation动画是针对UIView而言的,而不是当前view页面,我觉得这点是最关键的。只有理解了这点,对与该remove还是addsubview就不会晕了。
其实,道理很简单,用土话总结一下:先加载ViewB->在ViewB的Action里面设置好动画,把ViewA加到ViewA (addSubView)->转到了ViewA,设置动画,removeFromSuperView(这里的super就是指ViewA,因为刚刚是SubView,Sub,子,与父对应)->转到ViewA.....循环下去。用更土的话讲,就是第二加载的View要自杀完才回到第一加载的View。
OVER,以后再慢慢加深理解
0 0
- 在两个页面间翻转设置Animation动作的一些总结
- css3-animation实践1 两个元素的翻转与切换
- JSP的include编译指令与jsp:include动作指令在导入页面时的一些区别
- 两个界面的翻转
- 两个view的翻转
- Billboard的使用及加动作Animation
- Word中如何在同一个页面下设置两个不同的页码
- 总结关于两个fragment添加翻转动画
- 一些设置页面的开关效果
- ios页面跳转动画设置 animation
- 关于动作的一些代码
- 关于Animation的总结
- 给Animation设置事件的一些疑问 【ImageView有冲突,设置城TextView就好了......】
- 前端页面一些路径问题的总结
- iOS页面间传值的一些方式总结
- 总结一些页面常见的跳转方法
- 在animation的"keyframes"
- 在页面切换时添加animation
- NetBeans快捷键大全
- sqlserver 随机查询
- Nodejs学习笔记(四)与MySQL交互(felixge/node-mysql)
- 活动时间判断
- 关于在Maven工程中应用第三方jar包
- 在两个页面间翻转设置Animation动作的一些总结
- 关于内存管理单元需要掌握的相关知识
- 社会化分享组建(一)
- ”OCP“原则与模块分离思想、MVC模式
- Android 自定义组合控件
- Ajax深入学习笔记
- iOS多种开源库实现上拉刷新下拉加载技巧
- 关于makefile需要掌握的知识
- 【绿皮】新GRE填空补充练习题Exercise10