首页
学习
活动
专区
圈层
工具
发布

iOS动画三板斧(一)--UIView动画前言UIView 动画

前言 iOS 精致的app,离不开酷炫合宜的动画。而iOS中的动画实现也有多种不同的方式。今天就来介绍一下iOS中的动画。...本篇是第一篇,就讲一下最简单的动画实现方式,初学动画,简单的动画一般都是用这种方式来实现的。 UIView 动画 UIView动画就是利用UIView的API来实现动画效果。...而利用UIView API也可以分为两种,一种block形式,一种多API组合。 一、block形式的UIView 动画 常用的block UIView 动画方法有如下几个: ?...animatable property.png 二、一般形式的UIView动画 先介绍常用的API: ?...API介绍.png 上图中的API没有截完整,还有几个设置动画参数的方法,大家可以去探索一下。

1.1K10

iOS 开发从 UIView 动画说起

Linear 运行最开始的登录动画,放慢模拟器的动画速度,你会看到默认情况下使用的EaseInOut参数使得密码框在接近结束点的时候出现了明显的减速动画。...系列方法相比多了一个UIView类型的参数,这个参数接收的对象作为动画的作用者。...这段代码是我以前做的一个翻卡匹配的小游戏,点击之后的动画效果如下: ? 翻卡匹配小游戏 在模拟器下使用command+T放慢了动画的速度之后,我截取了翻转的四张图片: ?...本文作为动画篇的第一篇博客,目的是为了从最简单的UIView动画讲起,慢慢的拓展其它的动画,也希望能起到抛砖引玉的作用。...在文章的最后,如果你是iOS动画的初学者,请尝试结合上面提到的知识,为本文最开始的登录demo中添加代码,让按钮从下方渐变显示弹出: ? 弹出的登录按钮 最后的最后,吐槽一下gitcafe。

1.9K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS动画开发之三——UIView的转场切换 原

    iOS动画开发之三——UIView的转场切换         前两篇博客中,我们分别介绍了UIView动画的两种使用方式,分别为,带block的方式:http://my.oschina.net/u/2340880...通过UIView动画的类方法,我们可以十分方便的使View某些属性改变的同时拥有动画效果。这篇博客主要讨论View切换的动画操作。         ...void (^)(void))animations completion:(void (^)(BOOL finished))completion;    通过这个方法,我们可以重绘View视图,任何其子视图的改变或者其自身的改变都会触发转场动画的效果...+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration...通过使用上述两个方法,你会发现某些效果会非常突兀,比如想要改变视图的颜色,它会在转场动画播放完成后,颜色突然的变化,要改善这一效果,我们需要设置options参数包含:UIViewAnimationOptionAllowAnimatedContent

    1.1K10

    【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

    控件 : 1.创建 UIView 控件 : 使用 UIView 的 alloc init 方法 , 创建 UIView 控件 ; //1....UIView 控件放在该 容器 中 ; 3.添加按钮 : 添加两个按钮 , 两个按钮的功能分别是 生成 UIView 控件 和 清空 UIView 控件 ; ---- ( 3 ) 在 ViewController.m...几行 文字 , Lines 属性 设置 0 就会自动进行换行 ; 2.UILabel 行高设置 : 自动换行的前提是 , UILabel 有对应的多行的行高 , 如果 UILabel 高度很小只能显示...1 行 , 那么 UILabel 自动换行 也只是显示 1 行 , 因此 如果需要自动换行的话 , 需要给 UILabel 设置足够的行高 ; 3.宽高控制 : UILabel 的 宽度 和 高度...) UIButton 的启用 禁用 : 1.enabled 属性 ( 可视化修改 ) : 在 UIButton 的 属性查看器中 Control 模块下 , Enabled 属性用来设置 按钮是否可用

    4.7K41

    类似3D效果_CGAffineTransformScale

    )direction 方法中,先添加一下代码 UILabel *auxLabel = [[UILabel alloc] initWithFrame:label.frame]; auxLabel.text...变换方法比较简单,难的主要是里面的逻辑 10.27 添加新功能:关键帧动画 之前的文章说过UIView.animate这个方法,把多个动画链接在一起,可能你会想到在这方法里面嵌套多个这个方法,达到多个动画链接...但是这样复杂一点的动画,你会崩溃。。 所以我们可以将整个动画分成几个不同的阶段,或者关键帧,然后将单个的关键帧组合成一个关键帧动画。...关键帧动画 - (void)planeDepart { CGPoint originalCenter = self.planeImage.center; [UIView animateKeyframesWithDuration...,指定时间和持续时间是相对于关键帧动画的整个时间的,例如,0.1是10%,0.25是25%,而1.0是整个持续时间的100%。

    1.3K70

    iOS面试题:UIView block动画实现原理

    在了解UIView block动画实现原理之前,需要先了解CALayer的可动画属性。 1....理解完这些,我们再来分析UIView的block动画就容易理解了。 2. UIView的block动画 Amazing things happen when they are in a block....所以UIView可以相当灵活的控制动画的产生。...当我们对UIView的一个属性赋值的时候,它只是简单的调用了它持有的那个CALayer的对应的属性的setter方法而已,根据上面的可动画属性的特点,CALayer会让它的delegate(也就是这个UIView...实际上结果大家都应该能想得到:在UIView的动画block外面,UIView的这个方法将返回NSNull,而在block里面,UIView将返回一个正确的CAAction对象(这里将不深究UIView

    1.2K20

    iOS小技能(开发规范): weak和strong修饰符的规范使用

    [self.view addSubview:_noLabel]; //将弱引用参照的_noLabel添加到视图UIView;UIViewController.h-》@property(null_resettable..., nonatomic,strong) UIView *view;-》UIView.h :@property(nonatomic,readonly,copy) NSArrayUIView...*> *subviews;-》强引用UILabel对象,所以这个UILabel对象已经有拥有者,不会被放--再添加过程都是操作UILabel对象的地址 oc中释放对象的过程: 释放对象的过程: 程序先对控制器进行释放...此时如果UILabel对象没有被强引用,UILabel对象将被释放 。 1.2 属性的修饰 创建的自定义对象,都用strong。...即使你声明一个NSString的属性,有人可能传入一个NSMutableString的实例,然后在你没有注意的情况下修改它。 数字型的,比如int ,就是使用assign。

    1.1K50

    Ios常用第三方框架(一)

    Animations - 封装了一下,使用的时候只要两行代码。一些动画的飞机稿,都是一些单独分离出来的用于测试的子动画,现在统一归类一下。...模糊效果 FXBlurView - 是一个UIView子类,支持iOS5.0以上版本,支持静态、动态模糊效果,继承与UIView的模糊特效。...TTTAttributedLabel - 一个文字视图开源组件,是UILabel的替代元件,可以以简单的方式展现渲染的属性字符串。...FXLabel - FXLabel是一个功能强大使用简单的类库,通过提供一个子类改进了标准的UILabel组件,为字体增加了阴影、内阴影和渐变色等,可以被用在任何标准的UILabel中。...实用的标签文本小组件。 TextFieldEffects - 标准的UITextField有些枯燥么?来认识一下TextFieldEffects吧!

    6.5K31

    iOS动画开发之二——UIView动画执行的另一种方式

    iOS动画开发之二——UIView动画执行的另一种方式         上一篇博客中介绍了UIView的一些常用动画,通过block块,我们可以很方便简洁的创建出动画效果:http://my.oschina.net.../u/2340880/blog/484457,这篇博客再介绍一种更加传统的执行UIView的动画的方法。         ...这种方式相比如block的方式,显得要麻烦一些,apple官方也推荐我们使用带block的创建动画的方式,我们可以将编程重心更多的放在动画逻辑的实现上。...使用begin和commit方式主要分为三个步骤:     一、设置动画开始 [UIView beginAnimations:@"test" context:nil]; 这个函数中的两个参数,第一个用于设置一个动画的标识... commitAnimations];//执行commit后,动画即开始执行 一点建议:这种创建UIView动画的方式和上一篇博客中的block方式效果相同,然而效率并不高,写的代码也会繁琐冗长,在开发中

    57230

    iOS仿微信相册界面翻转过渡动画

    点开微信相册的时候,想要在相册图片界面跳转查看点赞和评论时,微信会采用界面翻转的过渡动画来跳转到评论界面,好像是在图片界面的背面一样,点击完成又会翻转回到图片界面,这不同于一般的导航界面滑动动画,觉得很有意思...,于是自己学着做了一下,其实也很简单,下面是实现的类似的效果图: 在图片界面点击右下角的查看评论会翻转到评论界面,评论界面点击左上角的返回按钮会反方向翻转回图片界面,真正的实现方法,与传统的导航栏过渡其实只有一行代码的区别...这里options的参数可以看出,动画是从右边开始翻转的,duration表示动画时间,很简单地就实现了翻转到评论界面。...的位置,这样就取代了原本的返回按钮了,然后在按钮点击响应中去设置翻转动画: // 返回上一页 - (void)back { // 设置翻转动画为从左边翻上来 [UIView transitionWithView...以上,就是该过渡动画的全部实现过程了,其实无非就是加了两行代码而已,非常简单,但是偶尔用一下,还是能带来非常好的效果的~ 这里有我的示例工程:https://github.com/Cloudox/ReverseDemo

    1.2K30

    客户端骨架屏详解

    Somo 同样是扩展UIView,添加属性somoContainer,表示占位视图的容器视图,其中每个占位区域都是一个SomoView。...特点 避免了上述自适应控件无数据时大小不正确的问题。 需要手工指定每个占位区域,且每个占位区域是UIView级别,不是CALayer。...TABAnimated 除此之外,TABAnimated也是一个被使用的比较多的,同样TABAnimated也是扩展的UIView。...//view动画类型枚举 { UILabel *lab = [[UILabel alloc]init]; [lab setFont:tab_kFont(15)];...,在等待页面加载渲染完成之后,在保留页面布局样式的前提下,通过对页面中元素进行删减或增添,对已有元素通过层叠样式进行覆盖,这样达到在不改变页面布局下,隐藏图片和文字,通过样式覆盖,使得其展示为灰色块。

    4.5K10

    声明式 UIKit 在有赞美业的实践

    2.1 API设计 UIView().attach($0) { UILabel().attach($0) .text("测试Label") UIButton().attach(...UIView |-- UILabel |-- UIButton 同时 View 之间没有相互联系,移植性高。 为什么不通过描述对象的方式来声明而采用直接使用 View 进行声明呢?...相比于用 UIView 直接声明结构的形式,View 的创建是非常重的,重复创建不现实。在UIView tree中,View是可变的,只需要把变化的操作放入动画 block 中即可由系统完成。...VBox().attach { UILabel().attach($0) } .animator(Animators.default) // 在布局重新计算子view时,根据动画对象进行 func...在声明式和响应式数据交互的加持下,我们可以通过响应数据的变化,把 TableView,CollectionView 的MVC设计模式,修改为响应式。

    1.7K30

    【 iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

    UIView 简介 : 1.定义 : iOS 手机屏幕上的所有能看到的内容都是 UIView 或 UIView 子类, 如 按钮 UIButton, 文字 UILabel 等都是继承自 UIView...UIView 中定义的, 而其他控件都是 UIView 的子类; ① 独有属性 : 有些属性是控件独有的, 如 UIProgressView 的 progress 属性代表其进度值, UILabel...: 头尾式动画用法 ① 开始动画 调用 UIView 的 beginAnimations:context 方法, ② 设置动画的各种属性, 如 设置动画过程 setAnimationDuration,...代码量过大, 用法比较少; //头尾式动画, 开始动画, 并设置动画的属性, 很少使用 [UIView beginAnimations:nil context:nil]; [UIView...头尾式动画, 开始动画, 并设置动画的属性, 很少使用 /* [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration

    5.7K30
    领券