本篇是第一篇,就讲一下最简单的动画实现方式,初学动画,简单的动画一般都是用这种方式来实现的。 UIView 动画 UIView动画就是利用UIView的API来实现动画效果。...而利用UIView API也可以分为两种,一种block形式,一种多API组合。 一、block形式的UIView 动画 常用的block UIView 动画方法有如下几个: ?...② 最简单的UIView动画API 示例代码,将试图移动并放大至某个frame: ?...在animations block中只能修改UIView的部分属性,产生动画效果。而可以产生动画效果的属性,苹果在其注释中都有标记 animatable。...animatable property.png 二、一般形式的UIView动画 先介绍常用的API: ?
UIView动画开始讲起,以后还会有Layer、Transitioning等在内的动画,希望本文能抛砖引玉,带给大家不一样的理解,下面送上一张书中demo的效果图。...; self.password.center = psdCenter; //还原中心坐标 accountCenter.x += 200; psdCenter.x += 200; [UIView...//动画在执行完毕后会反方向再执行一次我们将这两个参数传入到上面密码框出现动画中,看看会有什么效果(不同的参数使用|操作符一起传入) [UIView animateWithDuration: 0.5...系列方法相比多了一个UIView类型的参数,这个参数接收的对象作为动画的作用者。...本文作为动画篇的第一篇博客,目的是为了从最简单的UIView动画讲起,慢慢的拓展其它的动画,也希望能起到抛砖引玉的作用。
用Masonry实现 UIView Animation 简单动画 其实只需要在mas_updateConstraints:设置完需要更新的layout之后调用父视图的layoutIfNeeded方法就行...@interface MOViewTestViewController () @property (nonatomic, strong) UIView *moView; @end @implementation...// 如果其约束还没有生成的时候需要动画的话,就需要先强制刷新后再写动画 // 否则还没生成约束就会直接跑动画,得不到想要的动画效果 // [self.moView.superview...layoutIfNeeded]; [UIView animateWithDuration:3 animations:^{ [self.moView mas_updateConstraints...self.moView.superview layoutIfNeeded]; // 强制绘制 (重点是这句) }]; } - (void)createView { self.moView = [[UIView
NSNumber numberWithFloat: M_PI * 2.0 ]; rotationAnimation.duration = 1; // 切换界面保证动画不停止
在了解UIView block动画实现原理之前,需要先了解CALayer的可动画属性。 1....理解完这些,我们再来分析UIView的block动画就容易理解了。 2. UIView的block动画 Amazing things happen when they are in a block....大家应该可以思考出这样的问题:为什么同样的一行代码在block里面就有动画在block外面就没动画,就像下面这样: /** 产生动画 */ - (void)createAnimation { UIView...所以UIView可以相当灵活的控制动画的产生。...实际上结果大家都应该能想得到:在UIView的动画block外面,UIView的这个方法将返回NSNull,而在block里面,UIView将返回一个正确的CAAction对象(这里将不深究UIView
iOS动画开发之三——UIView的转场切换 前两篇博客中,我们分别介绍了UIView动画的两种使用方式,分别为,带block的方式:http://my.oschina.net/u/2340880...通过UIView动画的类方法,我们可以十分方便的使View某些属性改变的同时拥有动画效果。这篇博客主要讨论View切换的动画操作。 ...两个方法: + (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions...animations completion:(void (^)(BOOL finished))completion; 通过这个方法,我们可以重绘View视图,任何其子视图的改变或者其自身的改变都会触发转场动画的效果...+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration
iOS动画开发之二——UIView动画执行的另一种方式 上一篇博客中介绍了UIView的一些常用动画,通过block块,我们可以很方便简洁的创建出动画效果:http://my.oschina.net.../u/2340880/blog/484457,这篇博客再介绍一种更加传统的执行UIView的动画的方法。 ...使用begin和commit方式主要分为三个步骤: 一、设置动画开始 [UIView beginAnimations:@"test" context:nil]; 这个函数中的两个参数,第一个用于设置一个动画的标识...; 例如: UIView * view = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; [self.view... commitAnimations];//执行commit后,动画即开始执行 一点建议:这种创建UIView动画的方式和上一篇博客中的block方式效果相同,然而效率并不高,写的代码也会繁琐冗长,在开发中
UIView UIView类定义了一个矩形区域在屏幕上和管理内容的接口。 Overview 在运行时,一个视图对象处理任何内容的呈现它的面积,还处理任何与内容交互。...UIView类本身提供了基本行为与背景颜色填充的矩形区域。更复杂的内容可以被子类化UIView提出和实施必要的图纸和事件处理代码。...这里有几个: 绘图和动画 视图画内容在矩形区域使用UIKit等技术,核心图形和OpenGL ES。 一些可以动画视图声明的属性的新值。...Animations 几个视图属性可以更改该对象animated,改变属性创建一个动画,这种改变在很短的时间内传达给用户。...UIView类做的大部分工作执行实际的动画,但你还必须表明哪个属性改变你想要动画。
2UIView动画 2.1概述 UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。...UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。...执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码包装到一个代码块中。...转:UIView动画更具体讲解;http://wsqwsq000.iteye.com/blog/1189183 2.3创建UIView动画(块)——(指过渡效果的动画) 2.3.1一.基本方式:使用...UIView类的UIViewAnimation扩展 UIView动画是成块运行的。
1. iOS动画 总的来说,从涉及类的形式来看,iOS动画有:基于UIView的仿射形变动画,基于CAAnimation及其子类的动画,基于CG的动画。这篇文章着重总结前两种动画。 2....UIView动画 设置UIView形变动画有两种常见用到的属性,.frame,.transform,所以有的人也可以分别称之为: ① frame动画 ② transform动画 这两种动画只需要在动画语法中适当的位置...,基于UIView和CALayer的属性设置变化值即可。...2.1 设置UIView动画的两种语法形式 begin --- commit //偏移动画 [UIView beginAnimations:@"move" context:nil]; [...imageView.layer.transform = CATransform3DMakeScale(2.0, 2.0, 1.0); }]; 2.3 与动画相关的属性 2.3.1 UIView与动画相关的属性
UIView和CALayer都继承自NSObjet。 继承结构 UIView的继承结构为: UIResponder : NSObject。...CALayer是用来绘制内容的,对内容进行动画处理依赖与UIView来进行显示,不能处理用户事件。...UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制。 UIView和CALayer是相互依赖的关系。...UIView依赖与CALayer提供的内容,CALayer依赖UIView提供的容器来显示绘制的内容。...UIView来自CALayer,高于CALayer,是CALayer的高层实现与封装。UIView的所有特性来源于CALayer支持。 参考: 图片引用
首先先看一下苹果对两个对象的描述 UIView:http://blog.csdn.net/ZY_FlyWay/article/details/58611627 CALayer:http://blog.csdn.net.../ZY_FlyWay/article/details/59039800 我们从苹果官方文档可以知道: UIView 继承于 UIResponder (UIResponder继承于NSObject...答:看完这一个就懂了 一句话UIVIew可以响应事件,而Layer不可以。 2、UIView和CALayer有什么关系呢。...从官方文档可以了解到:UIView初始化的时候会自动创建Layer,而layer会自动指定代理是view。所以他俩是代理和被代理的关系。 3、那么layer在view中有什么用呢? ...view中对于图片的渲染,和一些动画操作都是layer完成的,view只是呈现layer的工作结果和处理交互响应事件。
UIView和CALayer都是源自NSObject。 UIView的继承结构为:UIResponder:NSObject。可以看出UIView的直接父类为UIResponder类。...综上来看UIView与CALayer的最大区别在于UIView可以响应用户事件,而CALayer不可以。UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制。...由此可见UIView确实是CALayer 的高级封装。 UIView和CALayer相互依赖,UIView依赖于CALayer提供的内容,CALayer依赖UIView提供的容器来显示绘制的内容。...但归根到底CALayer是这一切的基础,如果没有CALayer,UIView自身也不会存在,UIView是一个特殊的CALayer的实现,添加了响应事件的能力。...UIwindow是UIView的子类,UIWindow的主要作用:一是提供一个区域来显示UIView,二是将事件(event)的分发给UIView,一个应用基本上只有一个UIWindow.
一般情况都是说UIViewController的生命周期,UIView的生命周期经常被忽视。...1.没有子控件的UIView 显示过程: //(superview) - (void)willmovetosuperview:(nullable UIView *)newSuperview - (void...nullable UIWindow *)newWindow - (void)didmovetowindow //(superview) - (void)willmovetosuperview:(nullable UIView...2.包含子控件的UIView 当增加一个子控件时,就会执行 didaddsuperrview,之后也会执行一次layoutsubview。...4、旋转Screen会触发父UIView上的layoutSubviews事件。 5、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。
包括简单的UIView层的动画,CALayer层的动画,Autolayout自动布局动画以及CoreAnimation核心动画框架等。...——UIView动画执行的另一种方式:https://my.oschina.net/u/2340880/blog/484538 iOS动画开发之三——UIView的转场切换:https://my.oschina.net...) UIView *containerView; //下面是几个只读属性 //是否应该执行动画 @property(nonatomic, readonly, getter=isAnimated) BOOL...//是否被取消了 @property(nonatomic, readonly) BOOL transitionWasCancelled; //转场风格 @property(nonatomic, readonly...:(CGFloat)percentComplete; //完成可交互的转场交互动作时调用 - (void)finishInteractiveTransition; //取消可交互的转场交互动作时调用 -
1.init初始化的时候是不会触发的。但是调用initWiftFrame 并且参数fram不为0的时候会调用.换句话就是大小或者位置更改的时候调用。
只要按时机调用以下三个方法 /// 返回这个转场完成的百分比 0~1 - (void)updateInteractiveTransition:(CGFloat)percentComplete; /// 取消转场...break; case UIGestureRecognizerStateEnded: //判断手势位置,要大于一般,就完成这个转场,要小于一半就取消...[self.interactiveGes finishInteractiveTransition]; }else { // 取消交互转场...self.interactiveGes : nil; } 同时,在转场动画也要做相应的处理,转场动画需要标记手势是否完成,然后再去做对应的动画 /// 关注的用户动态转场 @interface MPUserDynamicTransition...viewForKey:UITransitionContextToViewKey]; UIView *whiteCoverView = [[UIView alloc] init]; whiteCoverView.backgroundColor
DAlertActionStyle) { DAlertActionStyleDefault = 0, // 默认样式 DAlertActionStyleCancel, // 取消样式...AlertAnimationTypeExpand, // 发散动画 AlertAnimationTypeFade, // 渐变动画 AlertAnimationTypeNone..., // 无动画 AlertAnimationTypeAlpha , // 渐变动画 AlertAnimationTypeRaiseUp, // 从底部弹出 AlertAnimationTypeDropDown...{ NSLog(@"点击了确定"); }]; DAlertAction *action2 = [DAlertAction actionWithTitle:@"取消..." style:DAlertActionStyleDefault handler:^(DAlertAction * _Nonnull action) { NSLog(@"点击取消");
比如像我们第三个小例子里面后面半透明背景动画,就是通过这个UIViewControllerTransitionCoordinator我们来做的,主要在 Modal 转场和交互转场取消时使用,其他时候很少用到...Note that for transitioning // animators that are not implemented with UIView animations, the alongside...这种情况下,可以使用转场协调器来执行这些动画。 2、转场协调器和动画控制器对象一块工作,确保任何额外动画被执行在同样的动画组中,就像转场动画一样。...更重要的是,转场协调器会提供重要的信息关于转场的状态,比如是否它会被取消,对于你的动画block而言,通过 UIViewControllerTransitionCoordinatorContext对象。...清理非常重要,当用户取消转场交互时,当取消的时候,你需要返回一个原始的视图层次状态,就像之前转场存在的一样。 我们在协议的最上面会看到这样一句话: ?
介绍 UIView 会占用屏幕上一个矩形的空间。 主要处理两件事:画出矩形控件,并处理其中的事件。 UIView 是层级结构,UIView 只有一个父 View,但可以有多个子 View。...} // 2.让图片进行动画的播放 // 图片数组 tomcat.animationImages = imageArray // 动画时间...{ indicator.stopAnimating() // UIView动画 // 动画执行的时间 // 动画执行的操作...UIView.animate(withDuration: 5.0) { // 千万不要直接设置progress,因为这样是不会有动画效果的 // self.progressView.progress...内容除了设置 String 类型,还可以设置 UIView 类型,且一旦设置了 UIView,设置 String 的失效。 代理方法可以设置内容的高度。