前言 iOS 精致的app,离不开酷炫合宜的动画。而iOS中的动画实现也有多种不同的方式。今天就来介绍一下iOS中的动画。...本篇是第一篇,就讲一下最简单的动画实现方式,初学动画,简单的动画一般都是用这种方式来实现的。 UIView 动画 UIView动画就是利用UIView的API来实现动画效果。...而利用UIView API也可以分为两种,一种block形式,一种多API组合。 一、block形式的UIView 动画 常用的block UIView 动画方法有如下几个: ?...② 最简单的UIView动画API 示例代码,将试图移动并放大至某个frame: ?...在animations block中可以修改多个视图的动画属性,或者修改某个视图的多个动画属性。 ?
毋庸置疑的:在iOS开发中,制作动画效果是最让开发者享受的环节之一。一个设计严谨、精细的动画效果能给用户耳目一新的效果,吸引他们的眼光 —— 这对于app而言是非常重要的。...本文作为动画文集的第一篇,最开始是想做个qq下拉刷新的水滴动画的制作讲解,但这几天研读《iOS Animations by Tutorials》一书,对iOS动画开发有了更为深刻的了解,于是决定动画篇将从...系列方法相比多了一个UIView类型的参数,这个参数接收的对象作为动画的作用者。...本文作为动画篇的第一篇博客,目的是为了从最简单的UIView动画讲起,慢慢的拓展其它的动画,也希望能起到抛砖引玉的作用。...在文章的最后,如果你是iOS动画的初学者,请尝试结合上面提到的知识,为本文最开始的登录demo中添加代码,让按钮从下方渐变显示弹出: ? 弹出的登录按钮 最后的最后,吐槽一下gitcafe。
NSNumber numberWithFloat: M_PI * 2.0 ]; rotationAnimation.duration = 1; // 切换界面保证动画不停止
用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
在了解UIView block动画实现原理之前,需要先了解CALayer的可动画属性。 1....大家应该可以思考出这样的问题:为什么同样的一行代码在block里面就有动画在block外面就没动画,就像下面这样: /** 产生动画 */ - (void)createAnimation { UIView...所以UIView可以相当灵活的控制动画的产生。...实际上结果大家都应该能想得到:在UIView的动画block外面,UIView的这个方法将返回NSNull,而在block里面,UIView将返回一个正确的CAAction对象(这里将不深究UIView...这也就说明了为什么我们对一个view的center赋值,如果这行代码在动画block里面,就会有动画,在block外面则没有动画。 *** 更多:iOS面试题合集
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
2UIView动画 2.1概述 UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。...UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。...buttonPressed)]; //将按钮添加到导航控制器默认右按钮上 self.navigationItem.rightBarButtonItem = self.rightBarItem; } 有个问题...原因:出现这个问题是因为开机时候系统有个动画,系统动画和这个动画重复了。 解决方案: 1、将动画写在按钮事件中 2、利用定时器。...使用这个方法,多个动画可以被实现。查看setAnimationBeginsFromCurrentState:来了解如果开始一个动画当另外一个动画在播放的时候。
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 是层级结构,UIView 只有一个父 View,但可以有多个子 View。...{ indicator.stopAnimating() // UIView动画 // 动画执行的时间 // 动画执行的操作...UIView.animate(withDuration: 5.0) { // 千万不要直接设置progress,因为这样是不会有动画效果的 // self.progressView.progress...整体结构 一个 UITableView 由 Header + 多个 Section + Footer 组成。 一个 Section 由 Header + 多个 Row + Footer 组成。...多个 Item 组成一个 Group ,多个 Group 组成一个 Section,因此层级关系从里到外变为:Item -> Group -> Section -> Layout。
,例如是否隐藏、透明度、背景颜色等 视图动画相关的扩展 UIView (UIViewAnimation) ,主要定义视图上自定义一个动画所需的一系列方法 视图用block快速定义动画的扩展 UIView... (UIConstraintBasedLayoutInstallingConstraints) ,主要提供添加单个/多个、移除单个/多个约束的方法 视图上约束相关的扩展 UIView (UIConstraintBasedLayoutCoreMethods...394 @end 395 396 @interface UIView(UIViewAnimationWithBlocks) 397 398 /** 用于对一个或多个视图的改变的持续时间、延时、选项动画完成时的操作...(4_0); 403 404 /** 用于对一个或多个视图的改变的持续时间内动画完成时的操作,默认:delay = 0.0, options = 0, completion = NULL */ 405..., fromView removed from its superview 415 416 /** 在一个或多个视图上执行指定的系统提供的动画,以及定义的可选并行动画 */ 417 + (void)performSystemAnimation
关于iOS的UI渲染部分,还是建议大家看看Apple的官方文档核心动画编程指南[1]以及WWDC2011的sessionUnderstanding UIKit Rendering[2]。...其实上面已经提到 CALayer 和 UIView 其实不属于同一个框架,CALayer 所属的 QuartzCore 框架是可以跨平台使用的,在 iOS 以及 macOS 中都可以使用,但是 UIKit...动画 基本上你改变一个单独的 layer 的任何属性的时候,都会触发一个从旧的值过渡到新值的简单动画,这就是所谓的隐式动画,其时长为 0.25s。...尽管两种情况中都有 layer,但是当 layer 附加在 view 上时,它的默认的隐式动画的 layer 行为就不起作用了,那不显示动画的原因是什么呢?...参考及相关链接 UIView中frame属性的内部实现[4] View-Layer 协作[5] iOS界面渲染与优化(二) - UIView与渲染[6] 参考资料 [1]核心动画编程指南: https:
问题描述1:当view发生一些事件的时候,通知控制器,但是控制器已经销毁了,所以可能出现未知的错误。 问题描述2:添加一个开关按钮,让屏幕360度旋转(两者的效果不一样)。...原因:出现这个问题是因为开机时候系统有个动画,系统动画和这个动画重复了。 解决方案: 1、将动画写在按钮事件中 2、利用定时器。...使用这个方法,多个动画可以被实现。查看setAnimationBeginsFromCurrentState:来了解如果开始一个动画当另外一个动画在播放的时候。...开发UI篇—UIWindow简单介绍 http://www.cnblogs.com/wendingding/p/3770052.html iOS动画总结----UIView动画 http://blog.csdn.net.../ UIView动画效果的四种调用方式 http://www.cnblogs.com/sell/archive/2013/02/09/2909522.html (Good)iOS事件分发机制(一)hit-Testing
1. iOS动画 总的来说,从涉及类的形式来看,iOS动画有:基于UIView的仿射形变动画,基于CAAnimation及其子类的动画,基于CG的动画。这篇文章着重总结前两种动画。 2....UIView动画 设置UIView形变动画有两种常见用到的属性,.frame,.transform,所以有的人也可以分别称之为: ① frame动画 ② transform动画 这两种动画只需要在动画语法中适当的位置...2.1 设置UIView动画的两种语法形式 begin --- commit //偏移动画 [UIView beginAnimations:@"move" context:nil]; [...” 与 CGAffineTransformConcat 2.5.1 连接设置多个属性组合成一个动画 连接设置两个以上属性的动画,可以先调用含有 formMake 的API,然后再调用只含 form 的API...贝塞尔曲线 前面关键帧动画章节提到了贝塞尔曲线,这个曲线很有用,在iOS开发中有两种形式可用:CGMutablePathRef和UIBezierPath,均可以通过制定控制点数组的形式唯一确定曲线,也可以通过矩形内切椭圆唯一确定曲线
而-webkit-touch-callout 在ios8中是失效的,查资料说是一个bug。...更多参考资料: 1) pointer-events 2) iOS Disable User Select but Allow Input
问题描述 在项目开发中,遇到这样一个问题场景:在某个页面(Fragament)中,点击按钮,进行页面部分的切换,即在一个Fragament中嵌套使用了两个Fragament进行切换。...这里我遇到了一个小问题,使用add进行添加后,并不能完成切换,但替换成replace之后便可实现切换,具体原因待考究。...Fragment动画 点击按钮进行界面切换是瞬间完成的,对于用户来说,体验并不良好。因此可以简单添加两个左移、右移的动画来进行过渡,使体验更为丝滑。 首先建立动画文件,在res下创建文件夹anim。...default: break; } fragmentTransaction.commit(); } 效果演示: 常规Activity多个...Fragment切换 设计导航栏时经常采用在Activity中进行多个Fragment切换,实际上和在Fragment进行设计大同小异。
在PS中一张图片至少得有一个图层,一个或多个图层的叠加构成了一张位图。我们这里一个或多个图层的叠加的构成了UIView(或其派生类)对象。...、甚至加入动画。...有人又有疑问了,上面的代码我们只读取了一个 layer 假如一个UIView 有多个图层呢?...作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:642363427不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!...他可以将一个二维物体变换为一个令人瞠目结舌的三维纹理,用于创建NB的转场动画。 我之前写过一篇介绍转场动画的文章,那是一种在不同 UIView 对象之间进行过度的手段。
简述 本文将讲述在iOS开发中如何根据某个UIView来获取所属的UIViewController UIResponder 在iOS中UIResponder类是专门用来响应用户的操作处理各种事件的,包括触摸事件...我们知道UIApplication、UIView、UIViewController这几个类是直接继承自UIResponder,所以这些类都可以响应事件。...当然我们自定义的继承自UIView的View以及自定义的继承自UIViewController的控制器都可以响应事件。...20170512174229676.png 代码 - (UIViewController *)getControllerFromView:(UIView *)view { // 遍历响应者链。
在iOS开发中,动画是提高用户体验重要的环节之一。一个设计严谨、精细的动画效果能给用户耳目一新的效果,这对于app而言是非常重要的。 简介 iOS动画主要是指Core Animation框架。...Core Animation是iOS和macOS平台上负责图形渲染与动画的基础框架。Core Animation可以作用与动画视图或者其他可视元素,为你完成了动画所需的大部分绘帧工作。...UIView _demoView.frame = CGRectMake(0, SCREEN_HEIGHT/2-50, 50, 50); [UIView animateWithDuration:1.0f...[begin commit] _demoView.frame = CGRectMake(0, SCREEN_HEIGHT/2-50, 50, 50); [UIView beginAnimations:.../2-50, 50, 50); [UIView commitAnimations]; Core Animation CABasicAnimation *anima = [CABasicAnimation
看了iOS6编程实践第9章后,总结一下UIView和CALayer的异同点: UIView 负责绘制与事件处理,而CALayer只负责绘制。 UIView的绘制也是交给CALayer的。...UIView和CALayer都可以有下一层,都是树状结构。 自定义的UIView重写drawRect,自定义的CALayer重写drawInContext或重写委托者的drawLayer方法。...UIView会在第一次显示或需要重绘时自动调用drawRect,而CALayer不会,需要显示调用setNeedsDisplay。
UIView专题 1UIWindow 1.1UIWindow简介 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow。...UIWindow继承自UIview。...问题描述1:当view发生一些事件的时候,通知控制器,但是控制器已经销毁了,所以可能出现未知的错误。 问题描述2:添加一个开关按钮,让屏幕360度旋转(两者的效果不一样)。...(3)view.window获得某个UIView所在的UIWindow。...在ios7里边,主窗口和次窗口是没有区别的。 在ios7以前中有区别:哪个是主窗口,后面设置为主窗口会把之前设置的覆盖掉。
领取专属 10元无门槛券
手把手带您无忧上云