Ios转场动画,type动画类型,跳转控制器动画

news/2024/7/7 18:58:04

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

转场动画是针对view图层的动画

#import "DYViewController.h"

@interface DYViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@property (nonatomic, assign) int index;

@end

@implementation DYViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
 
    _index = 1;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    _index++;
    
    if (_index == 10) {
        _index = 1;
    }
    NSString *fileName = [NSString stringWithFormat:@"%d",_index];
    _imageView.image = [UIImage imageNamed:fileName];
    
    CATransition *anim = [CATransition animation];
    
    anim.type = @"pageCurl";
    
    anim.subtype = kCATransitionFromLeft;
    anim.startProgress = 0.5;
    
    anim.duration = 2;
    
    [_imageView.layer addAnimation:anim forKey:nil];
}

视图控制器直接切换动画

只需要在window的layer上添加转场动画即可实现

@interface KKTestController ()

@end

@implementation KKTestController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor redColor];
    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
    btn.backgroundColor  = [UIColor yellowColor ];
    [btn addTarget:self action:@selector(testA:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
}


-(void)testA:(id)sender {
    KKTabBarController *test = [[KKTabBarController alloc] init];
    
    CATransition *anim = [CATransition animation];
    
    anim.type = @"oglFlip";
    
    anim.subtype = kCATransitionFromRight;
    
    anim.duration = 2;
 
    UIWindow *window = [UIApplication sharedApplication].keyWindow;
    
    [window.layer addAnimation:anim forKey:nil];
    window.rootViewController = test;

    
    
    
}
属性解析:
type:动画过渡类型
subtype:动画过渡方向
startProgress:动画起点(在整体动画的百分比)
endProgress:动画终点(在整体动画的百分比)


/*type属性 过渡效果
 fade     //交叉淡化过渡(不支持过渡方向) kCATransitionFade
 push     //新视图把旧视图推出去  kCATransitionPush

 moveIn   //新视图移到旧视图上面   kCATransitionMoveIn
 reveal   //将旧视图移开,显示下面的新视图  kCATransitionReveal
 cube     //立方体翻滚效果
 oglFlip  //上下左右翻转效果
 suckEffect   //收缩效果,如一块布被抽走(不支持过渡方向)
 rippleEffect //滴水效果(不支持过渡方向)
 pageCurl     //向上翻页效果
 pageUnCurl   //向下翻页效果
 cameraIrisHollowOpen  //相机镜头打开效果(不支持过渡方向)
 cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
*/
   
/*subtype 过渡方向

 kCATransitionFromRight
 kCATransitionFromLeft
 kCATransitionFromBottom


转载于:https://my.oschina.net/u/2532565/blog/542312


http://www.niftyadmin.cn/n/3124508.html

相关文章

spark知识点_RDD

来自官网的Spark Programming Guide,包括个人理解的东西。 这里有一个疑惑点,pyspark是否支持Python内置函数(list、tuple、dictionary相关操作)?思考加搜索查询之后是这么考虑的:要想在多台机器上分布式处…

工作笔记——js前端规范

去年年末做了一个项目,因为第一次做前端管理职位,第一次做整个项目的前端架构很多东西都不熟悉,作为一次大胆的尝试。 js方面的只有一个坑,那就是前端与后端的网络层封装,这一块是在后端的协助下开发的。网络层封装的过…

ArcGIS Server开发教程系列(8)ArcGIS API for Javascript-控件(小部件)(续)纯代码...

完整代码如下&#xff1a; <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"/><title>地图-Test </title><link href"arcgis_js_v39_api/arcgis_js_api/library/3.9/3.9compact/js/do…

后台多任务多线程断点下载

忘记图&#xff1a; 多线程断点下载事实上不是非常难。主要就是三个方面&#xff1a; 1、依据文件的大小和下载线程的数量&#xff0c;确定每一个下载线程要下载的切割文件的大小&#xff1b; 2、记录每一个下载线程已经下载完毕的进度。 3、将每一个线程下载的切割的文件合并到…

对用户上传的图片的尺寸进行等比缩放,size大小进行压缩

图片压缩和缩放的操作操作背景背景1背景2背景3知识结构核心要点功能拓展案例操作参考文档操作背景 背景1 当前手机相机的像素极高&#xff0c;随便拍个照片都是尺寸3000*4000 px的&#xff0c;大小都在5M以上。 背景2 而服务器在接收图片时&#xff0c;为减轻服务器压力&am…

给json数组添加新字段并赋值

zNodes.forEach(function(item) { item.newtitle "点击加号设为主席会场"; });转载于:https://www.cnblogs.com/penghq/p/7661759.html

滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月15日)...

滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单&#xff1a;http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里&#xff1a;http://www.cnblogs.com/mfry…

Navicat Report Viewer 怎么连接到 PostgreSQL 数据库

2019独角兽企业重金招聘Python工程师标准>>> Navicat Report Viewer作为一种方便使用的数据库查看器&#xff0c;可以让用户方便快捷的浏览报表文件&#xff0c;而且不论服务器在Linux、Unix、Mac或Windows中任何一个平台都可以使用&#xff0c;所以深受大家欢迎。下…