ios旋转动画

UIView详解

守給你的承諾、 提交于 2020-02-21 07:56:04
UIView表示屏幕上的一块矩形区域, 同时处理该区域的绘制和触摸事件 UIView在我们APP开发中占有非常重要的地位, 因为我们在iPhone上看到的绝大部分视图控件都是UIView的子类 一个视图可以作为其它视图的父视图, 同时决定着它的子视图的位置及大小 下图为UIKit的层级关系: 要知道UIView的知道必须了解如下内容: 一.三个结构体CGRect, CGSize, CGPoint struct CGRect { CGPoint origin;//位置 CGSize size;//大小 }; typedef struct CGRect CGRect; struct CGSize { CGFloat width;//宽 CGFloat height;//高 }; typedef struct CGSize CGSize; struct CGPoint { CGFloat x;//x点的位置 CGFloat y;//y点的位置 }; typedef struct CGPoint CGPoint; 二.Frame, Bounds, Center 1.Frame和Center都是相对于父视图的, bounds是相对于自身的 2.Frame定义了一个视图的位置和大小, 是CGRect类型的变量, 改变视图的Frame会改变Center 3.Center定义了一个视图中心点的位置

UIView详解

隐身守侯 提交于 2020-01-29 04:15:26
UIView详解(http://www.beyondabel.com/blog/2014/01/01/uiview/) 引言 UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为iOS中几乎所有可视化控件都是UIView的子类。负责渲染区域的内容,并且响应该区域内发生的触摸事件 目录 1、UIView家族 2、UIView的基本属性 3、几何方法类 4、控制级别类 5、渲染类 6、动画类 7、手势类 8、移动效果类 9、基于布局约束类(iOS6.0) 10、基于布局的约束core方法(iOS 6.0) 11、基于约束的兼容性(iOS 6.0) 12、层次布局的约束(iOS 6.0) 13、设备大小布局约束(iOS 6.0) 14、布局调度(iOS 6.0) 15、状态恢复(iOS 6.0) 16、快照 (iOS7.0) 1、UIView家族 下图就是视图的内层次 2、UIView的基本属性 // UIView是否接受events事件,默认为YES BOOL userInteractionEnabled; // 用于做标识所用,默认为0 NSInteger tag; // Core Animation layer有关,在常用方法中再详细讲解 CALayer *layer; // UIView在父视图中的位置 如果是在变形的时候不要用frame

IOS 转场动画

旧街凉风 提交于 2020-01-22 05:23:18
转场动画是用于两个view之前的切换效果;普通动画和关键帧动画是用于view中的某一个子视图的动画效果; CATransition *animation = [CATransition animation]; animation.duration = 0.5f;//时间 animation.type = kCATransitionFade; animation.subtype = KCATransitionFromTop; [self.view.layer addAnimation:animation forked:@“animation”]; fillmode 属性与动画效果无关,主要是用来设置动画开始前或者动画结束后的效果。 kCAFillModeRemoved 默认,当动画开始前和动画结束后,动画对layer都没有影响,动画结束后,layer会恢复到之前的状态 kCAFillModeForwards 当动画结束后,layer会一直保持着动画最后的状态 kCAFillModeBackwards 和kCAFillModeForwards相对,具体参考上面的URL kCAFillModeBoth kCAFillModeForwards和kCAFillModeBackwards在一起的效果 removeOnCompletion 一般情况下不需要设置

011-iOS核心动画(Core Animation)

夙愿已清 提交于 2020-01-06 05:02:49
简介 问题一:什么是核心动画(Core Animation)? •Core Animation是非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h> •CALayer中很多属性都可以通过CAAnimation实现动画效果,包括:opacity、position、transform、bounds、contents等(可以在API文档中搜索:CALayer Animatable Properties) •通过调用CALayer的 addAnimation:forKey 增加动画到层(CALayer)中,这样就能触发动画了。通过调用 removeAnimationForKey 可以 停止层中的动画 •Core Animation的动画执行过程都是在 后台操作 的, 不会阻塞主线程 问题二:开发步骤 ①初始化一个动画对象(CAAnimation)并设置一些动画相关属性 ②添加动画对象到层(CALayer)中,开始执行动画 ①CAAnimation 问题一:简述 所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类 CAAnimation继承结构 注意 :上图中的黑色虚线代表”继承”某个类,红色虚线代表

iOS_核心动画(二)

这一生的挚爱 提交于 2020-01-06 05:02:29
目  录: 一、Core Animation开发步骤 二、Core Animation的继承结构 三、CAAnimation常用的属性 四、CAPropertyAnimation(属性动画) 五、CABasicAnimation(基本动画) 六、CAKeyframeAnimation(关键帧动画) 七、CAAnimationGroup(动画组) 八、CATransition(转场动画)    上节中分享了核心动画的基础部分CALayer,知道了核心动画的操作对象不是UIView,而是基于CALayer。今天来看下Core Animation如何实现动画效果的。   Core Animation是一组非常强大的动画处理API,使用它能我们可以做出非常炫丽的动画效果,而且往往是事半功倍!不过在iOS 7之前使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h>。Core Aaimation在创建动画上不仅简单,而且具有更好的性能,原因有两个:    (1)动画在单独的线程中完成,不会阻塞主线程。   (2)动画只会重绘界面上变化的部分(部分刷新)。 一、Core Animation开发步骤   Core Animation开发步骤,大致划分两步:   1.初始化一个动画对象(CAAnimation

IOS之动画

醉酒当歌 提交于 2020-01-06 05:02:16
15.1 动画介绍 15.2 Core Animation基础 15.3 隐式动画 15.4 显式动画 15.5 关键帧显式动画 15.6 UIView级别动画 15.1 动画介绍 在iOS中动画实现技术主要是:Core Animation。 Core Animation负责所有的滚动、旋转、缩小和放大以及所有的iOS动画效果。其中UIKit类通常都有animated:参数部分,它可以允许是否使用动画。 Core Animation还与Quartz紧密结合在一起,每个UIView都关联到一个CALayer对象,CALayer是Core Animation中的图层。 15.2 Core Animation基础 Core Animation创建动画时候会修改CALayer属性,然后让这些属性流畅地变化。Core Animation相关知识点: 图层,图层是动画发生的地方,CALayer总是与UIView关联,通过layer属性访问。 隐式动画,这是一种最简单的动画,不用设置定时器,不用考虑线程或者重画。 显式动画,是一种使用CABasicAnimation创建的动画,通过CABasicAnimation,可以更明确地定义属性如何改变动 画。 关键帧动画,这是一种更复杂的显式动画类型,这里可以定义动画的起点和终点,还可以定义某些帧之间的动画。 15.3 隐式动画 实例ianimate:

iOS 常用动画方法

孤者浪人 提交于 2020-01-06 05:01:50
//翻页效果动画 左边 [UIView beginAnimations:@"animation" context:nil]; [UIView setAnimationDuration:1.0f]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:YES]; [UIView commitAnimations]; //翻页效果动画 右边 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; [UIView setAnimationDuration:0.35f]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; [UIView commitAnimations]; //lar动画,从上到下模糊 CATransition *animation = [CATransition

iOS开发UI篇—核心动画(转场动画和组动画)

南笙酒味 提交于 2020-01-06 05:01:18
所谓的动画组就是将一些动画组合起来给layer使其的动画更丰富灵活。 它很简单,就是为其animations属性赋值一个动画数组。 [cpp] view plain copy - ( void)demoAnimationGroup { static NSString * const kCAPostionKeyPath = @ "position"; static NSString * const kCAOpacityKeyPath = @ "opacity"; static NSString * const kCARotationKeyPath = @ "transform.rotation"; static NSString * const kCAScaleKeyPath = @ "transform.scale"; UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:_demoView.layer.position]; [path addCurveToPoint:CGPointMake(260, 400) controlPoint1:CGPointMake(0, 460) controlPoint2:CGPointMake(320, 0)]; //路径动画 CAKeyframeAnimation

IOS动画效果的实现

倾然丶 夕夏残阳落幕 提交于 2020-01-06 05:00:57
对于动画的使用,其实一直以来就不是很熟悉,因为平时使用的也少,使用也只是简单的使用.其实关于动画,一直在IOS中广泛存在.有时我们在调用某个方法时,经常会有一个参数Animation,填入BOOL参数,选择是否需要动画效果. 今天我就浅谈一下几种基本动画的实现. 首先为了测试动画效果,我随便声明了一个View. self.animationView = [[UIView alloc] initWithFrame:CGRectMake(50 , 100 , 100, 50)]; self.animationView.backgroundColor = [UIColor blueColor]; [self.view addSubview:self.animationView]; //初始化位置,并且赋颜色,用于测试 首先,是简单的移动,从一个位置移动到另一个位置.用UIView动画就可以 [UIView animateWithDuration:0.5 animations:^{ //其中duration是动画时间参数,还有几个差不多的方法,就不一一列举了 // self.animationView.frame = CGRectMake(0, 451, 375, 216); // // }]; [UIView animateWithDuration:0.5 delay:3 options

[iOS Animation]-CALayer 定时器动画

雨燕双飞 提交于 2019-12-29 22:25:10
定时器的动画 我可以指导你,但是你必须按照我说的做。 -- 骇客帝国 在第10章“缓冲”中,我们研究了 CAMediaTimingFunction ,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控制一帧一帧展示的基于定时器的动画。 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点。一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只是看起来像是做了运动。 我们之前提到过iOS按照每秒60次刷新屏幕,然后 CAAnimation 计算出需要展示的新的帧,然后在每次屏幕更新的时候同步绘制上去, CAAnimation 最机智的地方在于每次刷新需要展示的时候去计算插值和缓冲。 在第10章中,我们解决了如何自定义缓冲函数,然后根据需要展示的帧的数组来告诉 CAKeyframeAnimation 的实例如何去绘制。所有的Core Animation实际上都是按照一定的序列来显示这些帧,那么我们可以自己做到这些么? NSTimer 实际上,我们在第三章“图层几何学”中已经做过类似的东西,就是时钟那个例子,我们用了 NSTimer 来对钟表的指针做定时动画