每一个iOS应用都一个UIWindow的实例,这个不过是一个UIView的子类,因此我们可以在UIWindow上的做动画,而这样的动画可以用来做View的转换。
下面的工程用Xcode4.2建立
1.新建一个Empty Application,设置如下:
2.增加一个ViewController类,配置如下:
打开FVC.xib,加入一个button,命名为 goto two,为它的touch up inside事件加入一个响应函数。
3.使用上面同样的方法,加入一个SVC类,也加入一个button,命名为back,也为它的touch up inside事件加入一个响应函数。
4.修改AppDelegate.h文件如下:
@classFVC;
@classSVC;
@interface AppDelegate :UIResponder <UIApplicationDelegate> {
FVC *_fvc;
SVC *_svc;
}
@property (strong,nonatomic)
UIWindow *window;
- (void)flipAction:(id)sender;
@end
5.在AppDelegate.m中实现函数flipAction:
#pragma mark -
#pragma mark === Flip action ===
#pragma mark -
- (void)flipAction:(id)sender {
[UIViewbeginAnimations:nilcontext:NULL];
[UIViewsetAnimationDuration:0.5];
[UIViewsetAnimationTransition:([_fvc.viewsuperview]
? UIViewAnimationTransitionFlipFromLeft :UIViewAnimationTransitionFlipFromRight)
forView:self.windowcache:YES];
if ([_fvc.viewsuperview]) {
[_fvc.viewremoveFromSuperview];
[self.windowaddSubview:_svc.view];
} else {
[_svc.viewremoveFromSuperview];
[self.windowaddSubview:_fvc.view];
}
[UIViewcommitAnimations];
}
6.在AppDelegate.m中修改函数
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
_svc = [[SVCalloc]
initWithNibName:@"SVC"bundle:nil];
_fvc = [[FVCalloc]
initWithNibName:@"FVC"bundle:nil];
self.window = [[[UIWindowalloc]
initWithFrame:[[UIScreenmainScreen]
bounds]]autorelease];
// Override point for customization after application launch.
self.window.backgroundColor
= [UIColorwhiteColor];
[self.windowaddSubview:_fvc.view];
[self.windowmakeKeyAndVisible];
return
YES;
}
7.在AppDelegate.m中修改函数dealloc
- (void)dealloc
{
[_svcrelease];
[_fvcrelease];
[_windowrelease];
[superdealloc];
}
千万不要忘了忘记内存管理。
8.在FVC.m中实现button的响应事件代码:
#import"AppDelegate.h"
- (IBAction)gotoTwo:(id)sender {
AppDelegate *appD = (AppDelegate *)[UIApplicationsharedApplication].delegate;
[appD flipAction:nil];
}
9.在SVC.m中做同样的事情。
工程代码如下:
http://download.csdn.net/detail/NickTang/3692498
分享到:
相关推荐
UIView 动画 UIView动画
UIView 震动动画效果 AFViewShaker ,AFViewShaker 是一个简单的工具用来执行 。 使用方法: AFViewShaker *...
自定义UIView动画 http://blog.csdn.net/brycegao321/article/details/53817222
UIView的动画
用uiview提供的动画函数来实现界面的转换,为我的博客的提供例子代码。
uiView 动画翻转的效果,显示前后两个视图替换显示
这是一个ios动画开发的demo(请在github上获取最新代码),内容有 -uiview动画 -CoreAnimation基本动画 -关键帧动画 -TransferAnimation 文章对应的开发说明 ...如果大家支持,请在github上follow和star。
iOS中UIView的翻页动画demo 有几个是私有的api,小心使用。
6个UIView的弹簧效果布局,添加点击实现
主要介绍了iOS开发中的转场动画和组动画以及UIView封装动画,主要用到了CAAnimation类和UIView类,需要的朋友可以参考下
详细讲解UIView的生命循环周期,对开发者有更好的启发作用,深层次了解程序运行的流程。
UIView+Extension 对view的一个扩展
iOS 中对UIView简单的封装,换个说法:运用帧动画封装了一个HUD,使用起来简单方便,只需要调用 [RKJAnimatingHUD RKJStarAnimatingForView:self];或者 [RKJAnimatingHUD RKJStopAnimatingForView:self];一个类方法...
你的uiview的周围创建动画闪光
自己写了一个Dome 实现了UIView或者时UIViewController 缩放动画效果
主要部分是UIView上的类别,它混合了动画方法以扩展它们。 扩展方法将当前动画的持续时间、延迟和选项存储到全局可访问变量(通过访问器+currentAnimation )。 然后在你的动画属性的 setter 中检查你是否在动画块...
Fireworks - 为 UIView 添加烟花动画效果
xcode6,simulator-iPhone 6