ios开发视图切换效果动画类CATransition

利用CATransition为Swift中Push操作添加动画效果 在移动应用开发中,为用户提供流畅和吸引人的动画效果是提升用户体验的关键点之一。是 iOS 开发中一个强大且高效的动画框架,它允许开发者以非常低的资源成本来创建复杂的视觉效果。是中用于创建自定义转场动画的一个类,它能够为视图的变化提供平滑的过渡效果。本章将深入探讨框架的基础知识,并重点介绍的作用、结构以及如何在您的应用程序中使用它来增强动画的交互性和视觉吸引力。我们从的基本概念开始,逐步深入到如何利用。 阅读详情

在网上找了一个Demo。觉得不错,这里拿来和大家分享一下。

http://code4app.com/ios/常用16种视图切换动画/500903b76803fa2f43000000

ios开发视图切换效果动画类CATransition - ♂苹果 - 眼睛想旅行
下边是视图切换时的部分代码:
 


- (IBAction)buttonPressed1:(id)sender {
    UIButton *button = (UIButton *)sender;
    NSInteger tag = button.tag;
    
    CATransition *animation = [CATransition animation];
    animation.delegate = self;
    animation.duration = kDuration;
    animation.timingFunction = UIViewAnimationCurveEaseInOut;
    
    NSLog(@"button tag is %i",tag);
    //上边按钮中的下边四个和下边的两行八个按钮,共12个button的tag
    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"];
    
    
}
#pragma mark UIView动画
- (IBAction)buttonPressed2:(id)sender {
    UIButton *button = (UIButton *)sender;
    NSInteger tag = button.tag;
    
    CGContextRef context = UIGraphicsGetCurrentContext();
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:kDuration];
    
     NSLog(@"button tag is %i",tag);
    
    //这里是最上边的四个按钮的tag
    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 setAnimationDidStopSelector:@selector(animationFinished:)];
    [UIView commitAnimations];
}

这里定义了两个视图,一个greenView,一个blueView。切换,详情还是你们自已看Demo吧。

下边是找到的另一个相关的文章,就一起转来了,转自:http://www.cnblogs.com/pengyingh/articles/2339420.html 

UIViewAnimation动画与Core Animation的CATransition类动画
1.使用UIView类函数实现:
//UIViewAnimationTransitionFlipFromLeft, 向左转动
//UIViewAnimationTransitionFlipFromRight, 向右转动
//UIViewAnimationTransitionCurlUp, 向上翻动
//UIViewAnimationTransitionCurlDown, 向下翻动
[UIView beginAnimations:@"animationID" context:nil];
[UIView setAnimationDuration:0.5f]; //动画时长
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES]; //给视图添加过渡效果
//在这里写你的代码.
[UIView commitAnimations]; //提交动画
2.使用CATransition对象来实现:
CATransition比较强大,一般可以使用CATransition模拟UIView的动画。

    /* 过渡效果
fade     //交叉淡化过渡(不支持过渡方向)
push     //新视图把旧视图推出去
moveIn   //新视图移到旧视图上面
reveal   //将旧视图移开,显示下面的新视图
cube     //立方体翻滚效果
oglFlip  //上下左右翻转效果
suckEffect   //收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect //滴水效果(不支持过渡方向)
pageCurl     //向上翻页效果
pageUnCurl   //向下翻页效果
cameraIrisHollowOpen  //相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
*/
 
/* 过渡方向
fromRight;
fromLeft;
fromTop;
fromBottom;
*/
CATransition *animation = [CATransition animation];
animation.delegate = self;
animation.duration = 0.5f; //动画时长
animation.timingFunction = UIViewAnimationCurveEaseInOut;
animation.fillMode = kCAFillModeForwards;
animation.type = @”cube”; //过度效果
animation.subtype = @”formLeft”; //过渡方向
animation.startProgress = 0.0 //动画开始起点(在整体动画的百分比)
animation.endProgress = 1.0;  //动画停止终点(在整体动画的百分比)
animation.removedOnCompletion = NO;
[self.view.layer addAnimation:animation forKey:@"animation"];

 
转自:http://www.cnblogs.com/project/archive/2011/09/27/2193556.html
 
实现iPhone漂亮的动画效果主要有两种方法:
  一种是UIView层面的,
  一种是使用CATransition进行更低层次的控制,
  第一种是UIView,UIView方式可能在低层也是使用CATransition进行了封装,它只能用于一些简单的、常用的效果展现,这里写一个常用的示例代码,供大家参考。
  Cpp代码
  [UIView beginAnimations:@"Curl"context:nil];//动画开始
  [UIView setAnimationDuration:0.75];
  [UIView setAnimationDelegate:self];
  [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:myview cache:YES];
  [myview removeFromSuperview];
  [UIView commitAnimations];
  第二种方式相对复杂一些,但如果更好的进行控制,还是使用这种方法吧,
  基本使用方法可以看一下如下例子:
  Cpp代码
  CATransition *animation = [CATransition animation];
  [animation setDuration:1.25f];
  [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
  [animation setType:kCATransitionReveal];
  [animation setSubtype: kCATransitionFromBottom];
  [self.view.layer addAnimation:animation forKey:@"Reveal"];
  这里使用了setType与setSubtype组合,这使用个比较保险,因为他的参数就是官方API里定义的,他们的参数说明可以参考如下:
  [animation setType:@"suckEffect"];
  这里的suckEffect就是效果名称,可以用的效果主要有:
  Cpp代码
  pageCurl 向上翻一页
  pageUnCurl 向下翻一页
  rippleEffect 滴水效果
  suckEffect 收缩效果,如一块布被抽走
  cube 立方体效果
  oglFlip 上下翻转效果
 
 
 

iphone中CABasicAnimation和UIView动画的区别[转]
关于UIView动画:

[UIView beginAnimations:@"zoom out" context:nil];
[UIView setAnimationDuration:1.f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
cover.transform = CGAffineTransformMakeScale(9.25,7.05);
cover.center = CGPointMake(430, 512);
[UIView commitAnimations]
UIView动画是应用在一个view上面的。
关于CABasicAnimation动画:

- (CAAnimation *)animationMove:(CGPoint)rootCenter
{
    CABasicAnimation *animationMove
    = [CABasicAnimation animationWithKeyPath:@"position"];
    animationMove.duration = 1;
    animationMove.autoreverses = NO;
//    animationMove.delegate = self;
    animationMove.removedOnCompletion = NO;
    animationMove.fillMode = kCAFillModeForwards;
    animationMove.fromValue = [NSValue valueWithCGPoint:self.oldCoverCenter];
    animationMove.toValue =[NSValue valueWithCGPoint:rootCenter];
 
    return animationMove;
}
CABasicAnimation动画是应用在一个layer上面的。
注:
1,把一个image放在一个view的layer上来放大的时候,如果用UIView来做,图片不会太多的失真和闪烁的效果,但是用CABasicAnimation来做失真和闪烁现象会很严重,效果很不好。
2,做 动画的叠加效果 很简单,只要把各自的动画放在一起就可以了。请看这个效果:一本书边移动到屏幕中间,边放大,边打开封面的效果。

[imageLayer addAnimation:[self animationOpen] forKey:@"Open"];
[UIView beginAnimations:@"zoom out" context:nil];
[UIView setAnimationDuration:1.f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
cover.transform = CGAffineTransformMakeScale(5.5,5.5);
cover.center = CGPointMake(629, 384);
[UIView commitAnimations];
 
- (CAAnimation *)animationOpen
{
    CABasicAnimation *animationOpen
    = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
    animationOpen.duration = 1;
    animationOpen.autoreverses = NO;
    animationOpen.delegate = self;  //然后执行真正地打开书的内容
    animationOpen.removedOnCompletion = NO;
    animationOpen.fillMode = kCAFillModeForwards;
    animationOpen.fromValue = [NSNumber numberWithFloat:-M_PI/5];
    animationOpen.toValue = [NSNumber numberWithFloat:-M_PI/1.5];
 
    return animationOpen;
}
 

 

iOS的一些酷炫动画和功能 整理的一些iOS原生动画和一些酷炫的功能结合。解压后可以用Xcode直接打开预览。包括粒子效果、爆炸、碎片、水滴、波动等 立即下载

相关推荐

iOS六种动画效果的实现

demo实现了iOS中6种动画效果的实现。 直线动画效果、爆炸点赞动画效果、心跳(放大缩小)动画效果、上下浮动效果、图片序列gif效果和直线+Gif效果。 博客地址为:https://blog.youkuaiyun.com/aaaaazq/article/details/80736594

有关ios过度动画CATransition的一些特效

ios的画面切换的动画效果的API主要通过调用系统已定义的动画效果实现,这些效果已基本囊括开发的需求,如果需要更加复杂的效果,可以考虑CATransition来实现    以下是基本的四种效果  kCATransitionPush 推入效果  kCATransitionMoveIn 移入效果  kCATransitionReveal 截开效果  kCAT

zhao15127334470的博客 1109

各种IOS的特效动画

附件是苹果官网提供的几种关于重力感应方面的酷炫动画,拿去花吧

iOS-各种动画特效

广播跑马灯/弹幕/直播点赞/烟花/雪花等动画特效

smileZhangli的博客 1855

ios版实现各种特效

作者jiangtiteng,源码TTAnimations,animate.css 的iOS版,实现各种特效,也是一个animate.css 的 iOS 版本实现,实现bounce案例,大家可以了解一下。

支付逻辑漏洞的八大姿势(上篇)

学习支付漏洞,看这篇文章!!!文章来源:SecHub网络安全社区(本资料仅供学习参考,严禁使用者进行未授权渗透测试!严禁任何形式的转载!

qq_39493066的博客 1358

UIViewAnimation动画与CATransition类动画

CATransition   CATransition is an Objective-C wrapper for creating view transitions. As of 3.1.2, there are 11 types of transitions. 4 of them are SDK-compatible, but are the most boring ones. The...

weixin_33904756的博客 231

ARM和FPGA之间的通信(硬件原理图篇)

设计该开发板的初衷是为了学习,但也希望今后能扩展其功能,看到大家都在diy示波器,自己也非常冲动的想DIY一把,于是呼选了arm+fpga的方案,fpga主要用来实现数据的高速采样,而ARM则提供数据的显示,以及一些人机交互的功能。那么该方案中最重要的地方就是ARM和FPGA之间的通信如何实现了。在网上查了很多的资料,有说将FPGA作为ARM的一个外设,可以通过DMA的方式来直接访问;也有说把FP

屌yy的博客 5万+

iOS学习-按钮布局移动动画

在某些特定场景中触发某个事件,页面上的button或者label的布局会发生变化,比如三个按钮变成两个按钮,如果不加入动画,页面转换会变得十分生硬。

qq_43441647的博客 443

Java服务端实现Google Pay支付功能

全网最全代码、最清晰服务端处理Google Pay,最清晰讲解Google Pay集成逻辑。

jack2350536098的博客 1万+

PMAC上位机通信原理(C#)

基础是引用 两个 ODT dll 原理是先注册到communication.AsyncDataAvailable事件中去 if (bSuccess1) { communication.AsyncDataAvailable += communication_AsyncDataAvailable; } bool bSuccess2 = communication1.GPAsciiConnect(strIP, iPort, strName, strPassword); i

weixin_45507349的博客 1087

iOS中CATransition 用法(各种风格的跳转页面特效)

CATransition的type属性          1.#define定义的常量         kCATransitionFade   交叉淡化过渡         kCATransitionMoveIn 新视图移到旧视图上面         kCATransitionPush   新视图把旧视图推出去         kCATransitionReveal 将旧视图移开,显示

你有故事,我囿酒 2441

超酷炫,Python实现交通数据可视化!

此时输出的栅格化参数params的内容存储了栅格坐标系的原点坐标(slon、slat)、单个栅格的经纬度长宽 (deltalon、deltalat)、栅格的旋转角度(theta)、栅格的形状(method参数,其值可以是方形rect、三角形tri和六边形hexa)以及栅格的大小(gridsize参数,单位为米)。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。今天分享一次Python交通数据分析与可视化的实战!

m0_59236127的博客 1697

核心动画中的动画组和转场动画

动画组 CAAnimationGroup 上篇博客http://blog.youkuaiyun.com/cocoarannie/article/details/10413301介绍了核心动画中的基本动画(CABasicAnimation)和关键帧动画(CAKeyframeAnimation),还有一个比较常用的就是动画组(CAAnimationGroup) 所谓的动画组就是讲一些动画组合起

RannieR的技术博客 2865

Agentic AI为教育行业赋能,提示工程架构师解析应用潜力

然而,即便是最先进的 LLMs,在面对复杂、动态、需要持续规划和调整的教育场景时,也常常显得力不从心,它们更像是强大的“问答机器”,而非真正意义上的“学习伙伴”或“教学助手”。在教育场景中,传统的 AI 工具可能只能回答学生提出的特定问题,或者根据预设的规则推送一些学习材料。无论您是教育技术领域的开发者、产品经理,还是一线的教育工作者、教育管理者,抑或是对 AI 教育应用充满好奇的研究者,本文都将为您提供宝贵的 insights,助您把握 Agentic AI 时代教育创新的脉搏。

架构师的AI之路,分享AI应用开发架构的学习与实践。 466

【量化入门】Tushare库获取公募基金的历史净值

在本文中,我们将介绍如何使用Python的Tushare库获取公募基金的历史净值。

木头大左的博客 1144

IOS CATransition设置转场动画效果

iOS开发中,我们使用push跳转界面时,一般的动画都是从屏幕右侧向左侧push到屏幕上.今天讨论一下系统可设置的其他动画方式! NextViewController *vc = [[NextViewController alloc]init]; //实例化CATransition CATransition* transition = [CATransition animation]; /** ...

smile_sunshine 494

【基于 CasADi 的欠驱动无人船实时非线性模型预测控制(NMPC)实现 Visual Studio 2022 C++】

本文介绍了基于CasADi和IPOPT在Visual Studio 2022 C++环境下实现的欠驱动无人船实时非线性模型预测控制(NMPC)方案。文章详细阐述了NMPC基本原理、欠驱动无人船动力学模型(包含状态变量和控制变量定义),并给出了C++实现的核心代码框架。该方案通过显式引入系统动力学模型和约束条件,在每个采样周期滚动优化控制序列,有效解决了欠驱动无人船的轨迹跟踪与避碰问题。文中还提供了VS2022配置CasADi环境的详细步骤,包括预编译包下载、工程属性设置等关键环节,为工程实现提供了完整的技术

vor234的博客 653

iOS开发总结之 CATransition

1.代码 // #import "ViewController.h" @interface ViewController () - (IBAction)previous; - (IBAction)next; @property (weak, nonatomic) IBOutlet UIImageView *iconView; /** * 当前图片的索引 */ @property (n

Walden_tinghou的专栏 792

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

iOS Controller中视图切换动画效果

最近在一个小项目中遇到一个动画切换的效果,一时被难到了,后来又去看了下苹果公司提供的动画类,找到了几个动画的执行方法,这些默认的动画方法足够满足一般需求的动画效果了,接下来贴代码 首先我们在Controller中创建对应的按钮按钮 CGFloat mainHeight = [UIScreen mainScreen].bounds.size.height; NSArraytitleArr...

149

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

iOS开发 ☞ 浅谈CATransition动画(转场动画)

直入主题:首先附上实现动画效果的基本属性: 1. type属性 (1) #define定义的常量 (公开API) kCATransitionFade 交叉淡化过渡 kCATransitionMoveIn 新视图移到旧视图上面 kCATransitionPush 新视图把旧视图推出去

Magic-ZYJ的博客 2086

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ios动态效果实现翻页_Iphone翻页动画效果--CATransition实现

功能代码如下:在.h文件中定义NSMutableArray*views;NSInteger currentPage;CGPointstartPoint;- (void)viewDidLoad //重写初始化载入方法{/*初始化数据*/[super viewDidLoad];self.view.userInteractionEnabled = YES; //开启交互功能UIImageView ...

weixin_39888018的博客 419

ios 视图切换动画效果

ios 视图切换动画效果 在ios view与view间切换的动画效果这篇文章中简单介绍了一种动画效果,下面我详细介绍一下ios中页面间跳转系统自带的动画效果。 动画效果可以参考:http://www.iphonedevwiki.net/index.php?title=UIViewAnimationState 下面先介绍第一组动画效果: 实现的代码是:

编程路上的野花 732

IOS 视图切换动画

我在网上找到的这个小方法,被我举一反三使用的屡试不爽。比如用在,当视图需要执行某一方法跳转到新的一个UIView上,从底层渐变浮到最上层。就是一个不错的视觉效果或者当需要类似keyboard的效果从底下弹出来,点击再缩回去等等。/*为了避免视图之间切换呆板问题,在IPHONE中引入了转换动画效果,分别在UIKit.framework和QuartzCore.framework之中。总的来说两者的...

weixin_34072458的博客 379

iOS开发之 转场动画CATransition

转场动画CATransition入门须知: 1、 CATransition 转场动画 可以切换视图 视图控制器  2、CATransition 的两个重要属性  type 转场动画的 动画效果  subtype 转场动画动画的方向 3、type的动画效果如下:   kCATransitionFade   交叉淡化

ltj1171528192的博客 588
上一篇: UIView翻转效果实现(转)
下一篇: NSDictionary类使用(转)
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值