UIView层动画在view转换上的应用

每一个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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值