IOS UI 利用Storeboard 制作翻页动画

topbeautiful 2014-08-22 08:29:05
关键代码如下:
代理文件AppDelegate.h
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
@interface AppDelegate : NSObject <UIApplicationDelegate>
{
UINavigationController *navController;
UIWindow *window;

@private
NSManagedObjectContext *managedObjectContext_;//被管理的数据上下文
NSManagedObjectModel *managedObjectModel_; //被管理的数据模型
NSPersistentStoreCoordinator *persistentStoreCoordinator_; //持久化存储助理
}


@property (strong, nonatomic) UIWindow *window;


@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;

- (NSURL *)applicationDocumentsDirectory;//应用程序沙箱下的Documents目录路径
- (void)saveContext;//保存数据到持久层(数据库)
@end

Animation.h文件
@interface AnimationViewController : UIViewController
{
UIImageView *blueView;
UIImageView *greenView;

NSInteger typeID;
}
@property (nonatomic,assign) NSInteger typeID;

@property (strong, nonatomic) IBOutlet UIImageView *blueView;
@property (strong, nonatomic) IBOutlet UIImageView *greenView;

- (IBAction)btnPressedA:(id)sender;

- (IBAction)btnPressedB:(id)sender;

@end
Animation.m文件
- (IBAction)btnPressedA:(id)sender
{
UIButton *button=(UIButton *)sender;
NSInteger tag=button.tag;
CATransition *animation=[CATransition animation];
animation.delegate=self;
animation.duration=kDuration;
animation.timingFunction=UIViewAnimationCurveEaseInOut;

switch (tag) {
case 101:
animation.type=kCATransitionFade;
break;
case 102:
animation.type=kCATransitionPush;
break;
case 103:
animation.type=kCATransitionReveal;
break;
case 104:
animation.type=kCATransitionMoveIn;
break;
case 201:
animation.type=@"cube";
break;
case 202:
animation.type=@"suckEffect";
break;
case 203:
animation.type = @"oglFlip";
break;
case 204:
animation.type = @"rippleEffect";
break;
case 205:
animation.type = @"pageCurl";
break;
case 206:
animation.type = @"pageUnCurl";
break;
case 207:
animation.type = @"cameraIrisHollowOpen";
break;
case 208:
animation.type = @"cameraIrisHollowClose";
break;
default:
break;
}

switch (self.typeID) {
case 0:
animation.subtype = kCATransitionFromLeft;
break;
case 1:
animation.subtype = kCATransitionFromBottom;
break;
case 2:
animation.subtype = kCATransitionFromRight;
break;
case 3:
animation.subtype = kCATransitionFromTop;
break;
default:
break;
}
self.typeID += 1;
if (self.typeID > 3) {
self.typeID = 0;
}

NSUInteger green = [[self.view subviews] indexOfObject:self.greenView];
NSUInteger blue = [[self.view subviews] indexOfObject:self.blueView];
[self.view exchangeSubviewAtIndex:green withSubviewAtIndex:blue];

[[self.view layer] addAnimation:animation forKey:@"animation"];
}

- (IBAction)btnPressedB:(id)sender
{
UIButton *button = (UIButton *)sender;
NSInteger tag = button.tag;

CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:kDuration];
switch (tag) {
case 105:
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
break;
case 106:
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
break;
case 107:
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
break;
case 108:
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
break;
default:
break;
}

NSUInteger green = [[self.view subviews] indexOfObject:self.greenView];
NSUInteger blue = [[self.view subviews] indexOfObject:self.blueView];
[self.view exchangeSubviewAtIndex:green withSubviewAtIndex:blue];

[UIView setAnimationDelegate:self];
[UIView commitAnimations];
}

@end
...全文
166 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cchvsgame 2014-08-29
  • 打赏
  • 举报
回复
这个真的可以吗
程老师2088 2014-08-27
  • 打赏
  • 举报
回复
leaves GitHub找
ReyZhang 2014-08-23
  • 打赏
  • 举报
回复
是在分享吗,收了。

29,029

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧