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

ios animation 动画学习总结 动画一直是 iOS 开发中很重要的一部分。设计良好,效果炫酷的动画往往能对用户体验的提升起到很大的作用,在这里将自己学习 iOS 动画的体会记录下来,希望能对别人有所帮助。 iOS 的动画框架,即 CoreAnimation,本身十分庞大和复杂,这里暂时分两个部分进行介绍,分别是 UIView 动画 和 CALayer 动画。 1、UIView Animation 简单动画 对于 UIView 上简单的动画,iOS 提供了很方便的函数: + animateWithDuration:animations 阅读详情

每一个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.youkuaiyun.com/detail/NickTang/3692498



iOS动画进阶教程:从视图到层的动画转换 本文深入探讨了iOS中使用Auto Layout进行视图动画的高级技巧,并介绍了如何通过Core Animation对层进行动画处理。通过对比视图和层的动画处理方式,文章引导读者理解在需要性能提升或更高灵活性时,如何选择合适的动画实现方式。 阅读详情

相关推荐

保姆级教程:用GPU-Burn给你的NVIDIA Tesla服务器做个“压力体检”(附温度功耗监控脚本)

本文提供了一份详细的GPU服务器压力测试指南,重点介绍如何使用GPU-Burn工具对NVIDIA Tesla服务器进行全面的性能测试和温度功耗监控。从环境部署、多GPU测试策略到专业级监控指标解析,帮助运维人员构建标准化的GPU健康评估体系,确保AI训练和科学计算等关键业务的稳定性。

weixin_30619101的博客 395

ios代码添加UIViewController对应的view作为子控件

项目代码分析 这是一个代码实现view的例子:主view上有4个控件:3个按钮和一个UIView类型的contentView,其中点击某一个按钮的时候,就会在contentView上添加子控件进行显示 #import @interface MainViewController : UIViewController { IBOutlet UIView *contentView;

thanklife的专栏 3668

基于ADS\HFSS\Matlab的平面带通发夹滤波器设计

写在最前面,前段时间完成了一个小项目,实现13.5~14GHz的带通滤波器,算是第一个微波项目,在老师、学长、各种大神的指点下,最终完成了指标,想来这段时间收获良多,想到老师教导的,有能力的话要尽可能帮助别人,以及网络上很少面向于小白的教程,于是决定把自己做这个小项目的经过,一些关键步骤,还有软件操作和公式讲解都发出来,供大家指正借鉴。由于我目前大三,刚学习电磁场、微波工程等等,技术实在有限,同时这样是我第一次发帖子,只能尽可能的将自己确认过正确的内容,步骤以及一些经验写出来,供大家借鉴。

likaifeng12138的博客 5219

关于setneedsdisplay

1、在Mac OS中NSWindow的父类是NSResponder,而在i OS 中UIWindow 的父类是UIVIew。程序一般只有一个窗口但是会又很多视图。 2、UIView的作用:描画和动画,视图负责对其所属的矩形区域描画、布局和子视图管理、事件处理、可以接收触摸事件、事件信息的载体、等等。   3、UIViewController 负责创建其管理的视图及在低内存的时候将他们从内存中

IOS -Step by step 4541

GitLab中国区注册终极解决方案:绕过+86手机验证的实战技巧(2023最新)

本文详细解析了GitLab中国区注册时绕过+86手机验证的三种实战技巧,包括开发者工具调试方案、使用国际号码的变通方案以及本地化部署替代方案。通过技术分析和实践验证,帮助开发者顺利注册GitLab账号,提升团队协作效率。

rl6adventurer的博客 1499

别再手动找触点了!EPLAN线圈触点映像的3种显示方式与F键/Ctrl+B快捷键实战

本文详细解析EPLAN线圈触点映像的3种显示方式与F键/Ctrl+B快捷键实战技巧,帮助电气设计工程师提升图纸操作效率。通过精简编号、路径栏显示和元件旁可视化三种模式的应用场景对比,结合快捷键肌肉记忆训练法,实现触点快速定位与管理,大幅减少手动查找时间。

weixin_42522964的博客 481

iOS 动画专题(UIView二维形变动画与CAAnimation核心动画)

1. iOS动画 总的来说,从涉及类的形式来看,iOS动画有:基于UIView的仿射形变动画,基于CAAnimation及其子类的动画,基于CG的动画。这篇文章着重总结前两种动画。 2. UIView动画 设置UIView形变动画有两种常见用到的属性,.frame,.transform,所以有的人也可以分别称之为: ① frame动画 ② transform动画 这两种动画只需要在...

H.A.N的博客 1690

deepstream车道线检测自定义插件化,其中要注意pipeline的配置,如果插件位置配置不对,会报input format should be RGBA when using blur-obje

以上代码中,我们先从对象池中获取一个 DsUserMeta 对象,然后使用 get_lane_line_from_frame 函数获取车道线检测结果,并使用 add_lane_line_meta 函数将其添加到 DsUserMeta 对象中。注意,上述代码中的 get_lane_line_from_frame 函数和 add_lane_line_meta 函数需要你自己实现,用于从视频帧中提取车道线检测结果,并将其添加到 DsUserMeta 中。

pvmsmfchcs的博客 690

让View的转换 动起来!

<!-- google_ad_client = "pub-8097737732457645";/* 728x90, 创建于 09-6-23 */google_ad_slot = "0915066646";google_ad_width = 728;google_ad_height = 90;// --><!--

huanglx的专栏 7638

Qt6.10 | Qt Bluetooth 蓝牙

本文介绍了QtBluetooth模块的功能和使用方法,包括蓝牙API概述、构建配置(CMake/qmake)、权限管理、平台支持(Linux/macOS特殊处理)、日志设置及许可信息。重点说明Linux平台的后端选择机制,以及macOS上的依赖限制。最后提及蓝牙聊天示例,展示RFCOMM协议通信的实现。全文提供了蓝牙开发的技术要点和注意事项。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 400

YOLOv13涨点改进 | 全网独家创新、高效涨点改进篇 | CVPR 2024 | YOLOv13引入SHSA单头自注意力模块,减少冗余的多头注意力,轻量化改进,助力目标检测和图像分类任务高效涨点

本文提出了一种改进YOLOv13模型的新方法——SHSA(单头自注意力)模块,用于提升目标检测任务的计算效率和推理速度。SHSA通过简化多头注意力机制为单头结构,显著减少了计算冗余和内存占用。实验表明,该模块在保持精度的同时,在GPU、CPU和移动设备上分别实现了3.3倍、8.1倍和2.4倍的加速效果。文章详细介绍了SHSA的结构原理、核心代码实现方法,以及如何集成到YOLOv13的配置文件中。这种改进特别适合资源受限设备,为实时目标检测提供了更优的速度-精度平衡方案。

Ai缝合怪、助力小伙伴高效发论文 508

iOS动画性能优化:UIView-EasingFunctions的最佳实践

UIView-EasingFunctions是一个为iOS开发者提供自定义缓动函数的强大工具,它通过分类扩展UIView,让开发者能够轻松实现流畅自然的动画效果。本文将详细介绍如何利用这个库提升你的iOS应用动画性能,让用户体验更加出色。 ## 为什么选择UIView-EasingFunctions? 在iOS开发中,动画是提升用户体验的关键因素之一。原生的UIView动画虽然简单易用,但在缓

gitblog_00859的博客 1071

5、基于模型的系统工程(MBSE)全面解析

本文全面解析了基于模型的系统工程(MBSE),介绍了模型在系统工程中的核心地位,以及如何通过视图和符号表示法实现信息的可视化。文章还详细阐述了MBSE的方法构成,包括框架(本体和视图点)和流程集,探讨了MBSE的实施流程、关键要素、应用策略以及未来发展趋势。通过合理应用MBSE,组织可以提高系统开发的效率和质量,降低成本与风险,实现成功部署。

nft7creator的博客 127

ios UIView的mask属性,view和layer的关系

mask属性 :https://www.jianshu.com/p/fe4124de3729 view和layer的关系 :https://www.jianshu.com/p/9c7a23ea705b 什么是mask: CALayer有一个属性叫做mask,通常被称为蒙版图层,mask类似于子视图,但却不是一个普通的子视图,它本身也是CALayer类型,具有和其他图层一样的绘制和布局属性...

gcs的博客 3985

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IOS开发-UIView之动画效果的实现方法

一、使用UIView类实现动画 基本写法,代码必须放在Begin和Commit之间: [UIView beginAnimations:nil context:nil]; // 开始动画 // Code... [UIView commitAnimations]; // 提交动画 简单例子: [UIView beginAnimations:nil context:nil]; // 开始动画 ...

YF0710的博客 230

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

UIView 简介(一)ios 显示图层的层次框架

UIView的重要性 大部分你想要可视化操作都是由视图对象-即UIView类的实例-来进行的。 ios 显示图层的层次框架 上层:    UIView视图和它的层对象,每个UIKit框架里的视图都被一个层对象支持(通常是一个CALayer类的实例)(UIView视图可以是容器)中间层:在它们的层对象之后是Core Animation的解释对象,底层:    最

学习笔记 2148

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

UIView 你知道多少

该文章转载自:http://www.cocoachina.com/newbie/basic/2012/0425/4192.html      曾经有人这么说过,在iphone里你看到的,摸到的,都是UIView,所以UIView在iphone开发里具有非常重要的作用。那么UIView我们到底知道多少呢。请看看下面的问题, 如果这些你都知道,那么本文章的内容就请绕道,如果你还不太清楚,我

程序人生 2249

UIview转换UIimage

1、将UIview转换UIimage;2、拼接两张图片为一张;- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIImageView *test3= [[UIImageView a

u012477117的专栏 695

DCAnimationKit源码解析:理解UIView分类动画实现原理

DCAnimationKit是一个为iOS开发提供丰富动画效果的UIView分类库,通过简单的API调用即可为视图添加各种生动的动画效果。本文将深入解析其源码结构和实现原理,帮助开发者理解iOS动画的底层实现逻辑。 ## 项目结构概览 DCAnimationKit采用典型的Objective-C分类(Category)设计模式,核心代码集中在两个文件中: - **UIView+DCAnima

gitblog_00971的博客 397

iOS UIView动画的使用方法

一、使用UIView类实现动画 基本写法,代码必须放在Begin和Commit之间:  [UIView beginAnimations:nil context:nil]; // 开始动画 // Code... [UIView commitAnimations]; // 提交动画   简单例子: [UIView beginAnimations:nil conte

dylan_lwb_ 1251

UIView-EasingFunctions完全解析:从安装到高级动画的完整教程

UIView-EasingFunctions是一个强大的iOS开发工具,它为UIView提供了自定义缓动函数的分类扩展,让开发者能够轻松实现流畅自然的block-based动画效果。无论是简单的视图移动还是复杂的交互过渡,这个库都能帮助你创建出令人印象深刻的用户体验。 ## 什么是UIView-EasingFunctions? UIView-EasingFunctions是一个基于UIView

gitblog_00167的博客 407

有关CALayer与UIView的关系

CALayer属于Core Animation部分的内容,比较重要而不太好理解。以下是园子中看到的一篇文章的摘录: 1. UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是由一个CALayer类来管理。UIView本身更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,b

code life 1039

UIView中的坐标转换

// 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值 - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view; // 将像素point从view中转换到当前视图中,返回在当前视图中的像素值 - (CGPoint)convertPoint:(CGPoint)point fr

yangye的专栏 443
上一篇: Objective-C 2.0数据类型
下一篇: 图解苹果iOS 5的24个秘密功能(图)
NickTang
博客等级 码龄24年 261粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值