首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS动画系列之一:带时分秒指针的时钟动画(上)1. 最终实现的效果以及思维导图2. CALayer3. 隐式动画

在iOS中,看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层 在创建...UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @property(nonatomic,readonly,retain)...@property BOOL |masksToBounds;|超过部分进行裁剪 设置阴影的时候,阴影颜色+阴影偏移(或者阴影路径)+阴影透明度缺一不可。...阴影模糊度如果不设置,默认值就是3.0000。 阴影的路径: 设置了阴影的路径,就不再需要设置阴影的偏移量了。 设置了阴影的路径之后,也不能再设置masksToBounds。...CALayer 创建CALayer 在设置frame的时候,内部同时设置了position,bounds.size 都会发生改变。

2.1K30

【iOS开发-图层】图层的获取与一些属性

; 使用UIView的图层为例 UIView本身仅仅有一个图层,主图层 self.testView.layer.borderWidth = 10;//设置边框大小 self.testView.layer.borderColor...后面是阴影偏差(阴影会向哪个方向偏)右下角全正数 self.testView.layer.shadowColor = [UIColor blackColor].CGColor;//给阴影设置颜色...阴影不显示也是这个原因 UIImageView为例圆角实现 UIImageView控件不止一个图层。图片的显示不是在主层中,所以更改主层的边角为原型。...并不能改变图片显示层的边角 self.imageView.layer.borderWidth = 10;//设置边框宽度大小 self.imageView.layer.borderColor = [...关于layer层的旋转,平移,缩放 layer的仅仅能使用3D旋转,平移,缩放 self.imageView.layer.transform = CATransform3DMakeRotation(M_PI

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

    【IOS开发进阶系列】动画专题

    •  单位 —— 对于与图片大小或是图层边界相关的显示,单位坐标是一个方便的度量方式, 当大小改变的时候,也不需要再次调整。...改变contentsCenter的值并不会影响到寄宿图的显示,除非这个图层的大小改变了,你才看得到效果。        ...这是因为自动调整会影响到视图的frame,而根据图3.2的演示,当视图旋转的时候,frame是会发生改变的,这将会导致一些布局上的失灵。...这使得你可以手动地重新摆放或者重新调整子图层的大小,但是不能像UIView的autoresizingMask和constraints属性做到自适应屏幕旋转。        ...如果想让立方体看起来更加真实,需要自己做一个阴影效果。你可以通过改变每个面的背景颜色或者直接用带光亮效果的图片来调整。

    56810

    iOS学习——核心动画之Layer基础

    我们可以通过操作CALayer对象,可以很方便地调整UIView的一些外观属性,可以给UIView设置阴影,圆角,边框等等... 2、如何操作layer改变UIView外观?   ...2.1 设置阴影 //默认图层是有阴影的, 只不过,是透明的 _RedView.layer.shadowOpacity = 1; //设置阴影的圆角 _RedView.layer.shadowRadius...= 50; 3、如何操作layer改变UIImageView的外观? ...可以做一些简单的动画,例如:平移,拉伸,旋转 一些比较高端的动画,都是直接操作CALayer的,可以制作3D动画 使用CALayer,可以直接操作显示的东西,例如阴影,圆角,边框等 所以,对比CALayer...是根据当前的时间,绕着表盘的中心点进行旋转.   要了解一个非常重要的知识点,无论是旋转,缩放它都是绕着锚点进行的。

    1.5K61

    IOS开发系列——UIView专题之二:动画篇【整理,部分原创】

    UIView可以产生动画效果的变化包括: •位置变化:在屏幕上移动视图。 •大小变化:改变视图框架(frame)和边界。 •拉伸变化:改变视图内容的延展区域。...•改变透明度:改变视图的alpha值。 •改变状态:隐藏或显示状态。 •改变视图层次顺序:视图哪个前哪个后。 •旋转:即任何应用到视图上的仿射变换(transform)。...UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。...执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码包装到一个代码块中。...self.blueController =[[BlueViewController alloc] initWithNibName:nil bundle:nil]; //设置导航控制器view的大小占整个屏幕

    1.5K10

    Quartz2D复习(四) --- 图层CALayer和动画CAAnimation

    1、CALayer 1)、在ios中,能看得见摸得着的东西基本上都是UIView, 比如按钮、文本标签、文本输入框、图标等,这些都是UIView 2)、UIView之所以能显示在屏幕上,完全是因为它内部的一个图层...UIView的显示。...UIView本身不具备显示的功能,是它内部的层才有显示功能 5)、通过CALayer对象,可以很方便的调整UIView的一些外观属性,比如:阴影、圆角大小、边框宽度和颜色。。。...但是实质上,   图层的属性值还是动画执行前的初始值,并没有真正的被改变 11)、CAKeyframeAnimation  --- 关键帧动画   关键帧动画,也是CAPropertyAnimation...  view : 需要进行转场动画的视图   options : 转场动画的类型   animations : 将改变视图属性的代码放在这个block中   completion : 动画结束后,会自动调用这个

    1.5K30

    【IOS开发基础系列】UIView专题

    当发生屏幕旋转事件的时候,UIapplication对象会将旋转事件传递给uiwindow,uiwindow又会将旋转事件传递给它的根控制器,由根控制器决定是否需要旋转UIapplication->uiwindow...    接收者首选的尺寸 返回值     一个新的大小用来适应接收者子视图 讨论     默认的实现返回大小参数 子类重写这个方法用来返回特定视图的大小。...举个粒子,UISwitch返回一个修正过的大小,UIImageView返回图片的大小 这个方法并没有改变接收者的大小 sizeToFit     调整大小并移动接收者视图大小所以他包含了他的子视图 -...UIView可以产生动画效果的变化包括:     • 位置变化:在屏幕上移动视图。     • 大小变化:改变视图框架(frame)和边界。     • 拉伸变化:改变视图内容的延展区域。     ...• 旋转:即任何应用到视图上的仿射变换(transform)。         UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。

    70530

    iOS点击查看大图的动画效果

    今天就讲解一个查看和收起大图的动画效果,先直接看效果图: 如图所示,最开始是一个小图,点击小图可以查看大图。大图会从小图的位置和大小“弹”出来,同时背景变成半透明的阴影。...,直到撑到屏幕的边界; 收起时先让阴影背景消失; 然后将图片逐渐收小到小图原本的大小。...[UIView animateWithDuration:0.3 animations:^{ // 改变大小 _bigImageView.frame = originFram...这里的动画我们使用的是最简单的iOS 7开始支持的基于block的UIView动画,在我的这篇博客中也有详细讲解:iOS基础动画教程 然后,我们初始化了阴影背景视图,并添加到界面上,此时不要忘记,要再次将大图手动推送到最上层...[UIView animateWithDuration:0.3 animations:^{ // 改变大小 _bigImageView.frame = self.smallImageView.frame

    1.7K20

    CALayer 图层概念二、CALayer属性二、方法

    UIView负责监听和相应事件.UIView是更高层的封装 在 iOS 中,你能看得见,摸得着的东西基本上都是UIView.比如一个按钮,一个文本标签,一个文本输入框, 一个图标等.这些都是UIView...其实,对比CALayer,UIView多了一个事件处理的功能,也就是说,CALayer不能处理用户的触摸事件,而UIView可以.所以,如果显示出来的东西需要跟用户进行交互的话,用UIView.UIView...阴影效果shadowColor、shadowOffset、shadowOpacity属性必须同时设置后才可以看到 设置阴影的颜色, 注意UIKit框架中的颜色不能直接设置给CGColorRef,...,但是这样会导致阴影效果没有,可以再添加一个SubLayer,添加阴影。...以哪个轴的哪个点进行旋转,以一个轴旋转,轴上的任何点都一样,参数填1就可以 CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat

    1.4K70

    Core Animation实战四(视觉效果)

    这里有一些UIView没有暴露出来的CALayer的功能: 阴影,圆角,带颜色的边框 3D变换 非矩形范围 透明遮罩 多级非线性动画 这篇主要说阴影圆角边框,先看一下Demo效果: ?...它是一个CGSize的值,宽度控制这阴影横向的位移,高度控制着纵向的位移。...self.shadowView.layer.shadowOffset = CGSizeMake(1, 1); //shadowRadius属性控制着阴影的模糊度,当它的值是0的时候,阴影就和视图一样有一个非常确定的边界线...双线性滤波算法通过对多个像素取样最终生成新的值,得到一个平滑的表现不错的拉伸。但是当放大倍数比较大的时候图片就模糊不清了。...但是,较双线性滤波算法而言,三线性滤波算法存储了多个大小情况下的图片(也叫多重贴图),并三维取样,同时结合大图和小图的存储进而得到最后的结果 kCAFilterNearest是一种比较武断的方法。

    54020

    iOS动画小知识:定点缩放弹窗(利用锚点anchorPoint进行实现)包含完整demo

    前言 iOS开发中常用的动画(定点缩放弹窗)的应用场景: 会员详情的右侧下拉操作菜单 浏览器的右侧下拉菜单 I 基础知识 (CALayer) 每一个UIView内部都默认关联着一个CALayer,...1.1 anchorPoint anchorPoint就相当于白纸上的图钉,它主要的作用就是用来作为变换的支点,旋转就是一种变换,类似的还有平移、缩放。...* bounds.size.height 修改anchorPoint而不想移动layer,在修改anchorPoint后再重新设置一遍frame就可以达到目的,这时position就会自动进行相应的改变...2.1 核心代码 /** 1、点击弹出按钮时,阴影alpha由0到1,弹窗的scale由0到1(这里使用CABasicAnimation) 2、 点击空白处,再让阴影alpha由1到0,弹窗的scale...由1到0(同样使用CABasicAnimation),动画完成后移除阴影和弹窗 */ - (void)expandView{ //展示的时候,动画从右上角往左下脚延伸;隐藏的时候,动画从左下脚往右上角收回

    2K21

    iOS利用锚点实现定点缩放弹窗

    内部都默认关联着一个CALayer, UIView有frame、bounds和center三个属性,CALayer也有类似的属性,分别为frame、bounds、position、anchorPoint...1.1 anchorPoint anchorPoint就相当于白纸上的图钉,它主要的作用就是用来作为变换的支点,旋转就是一种变换,类似的还有平移、缩放。...* bounds.size.height 修改anchorPoint而不想移动layer,在修改anchorPoint后再重新设置一遍frame就可以达到目的,这时position就会自动进行相应的改变...在这里插入图片描述 2.1 核心代码 /** 1、点击弹出按钮时,阴影alpha由0到1,弹窗的scale由0到1(这里使用CABasicAnimation) 2、 点击空白处,再让阴影alpha由1...到0,弹窗的scale由1到0(同样使用CABasicAnimation),动画完成后移除阴影和弹窗 */ - (void)expandView{ //展示的时候,动画从右上角往左下脚延伸;隐藏的时候

    1.6K31

    iOS基础动画教程

    现在分别讲解位置、透明度、大小、颜色、旋转的动画。 位置动画 我们在界面上放置一个方块,然后想要他通过动画移动到另一个位置,怎么做呢?...很简单,在上面的代码块的位置改变方块的中心就好了,如下: [UIView animateWithDuration:1 animations:^{ // 改变蓝色方块的位置...大小动画 如果想改变一个控件的大小,需要在代码块里用到一个改变大小的函数:CGAffineTransformMakeScale,这个函数的参数分别为设置长和宽为原来的多少倍,比如我们通过动画将控件放大到原来的两倍...如果只是想旋转一下停住,按照这种方式写,改变角度就可以了,但是如果想要旋转一个整圆,第一个想到的可能是把角度改成整圆: [UIView animateWithDuration:1 animations...就跟改变位置,位置还是原来的位置时,也不会动一样。那怎么办呢。另外,这里的旋转都是一次性的,如果想要一直转,怎么做呢,是不是很容易想到循环?

    74730

    iOS动画-CALayer基础知识

    苹果为我们提供了简洁方便的UIView的接口,而且为UIView增加了处理触摸事件的能力,但这种简单的设计也不可避免带来灵活上的缺陷,如果我们需要在底层做一些改变,或者使用一些没有在UIView上实现的接口功能...下面是一些UIView没有暴露出来的CALayer的功能: 设置阴影、圆角、带颜色边框 3D变换 非矩形范围 透明遮罩 多级非线性动画 二、CALyer寄宿图与contents属性 CALayer具有和...NSString) contentMode (枚举) 内容填充方式(填满、自适应等) contentsScale(CGFloat) contentScaleFactor(CGFloat) 像素尺寸和视图大小的比例...frame&&bounds.png 上图对原有视图做了旋转变换,之后的frame实际上代表了覆盖在图层旋转之后的整个轴对齐的矩形区域,此时frame的宽和高和bounds不再一致了。...;但这时候我们又不得不考虑一个问题:修改锚点可以让我们的动画围绕非中心点旋转,但是这也改变了原有视图的位置frame,这是我们不想要的结果,该如何解决呢?

    1.9K50

    iOS-圆角、边框、阴影

    3)shadowOffset 阴影的方向和距离,默认是(0, -3),即阴影相对于Y轴有3个点的向上位移 4)shadowRadius 阴影的模糊度,当它的值是0的时候,阴影就和视图一样有一个非常确定的边界线...阴影是通过里面的飞机来计算 所以,我们圆角加阴影的实现方案就出来了,我们可以用两个视图来实现,一个只画阴影的空的外图层,和一个经过裁剪的内图层,这样外图层的阴影会根据裁剪过后的内图层来计算,这样看起来就即有阴影又有圆角了...self.cCorner是通过conrnerCorner赋值的,self.cRadius是通过conrnerRadius赋值的,所以,在切圆角时,我们需要知道view的大小,如果我们用了约束或者切圆角时没有设置...view的大小,这样就会吧整个view都切没了,所以在这两种情况,我们需要传一个bounds值进来,如果在切角时已经设置了view的大小,conrnerBounds就不用传了 下面再来一个具体的用法:...// 圆角+边框+阴影 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)]; view.backgroundColor

    2.7K50

    老司机带你走进Core Animation 之CAAnimation

    opacity,类比UIView的alpha。 shadowOpacity、shadowColor、shadowPath、shadowOffset、shadowRadius,这几个阴影相关的属性。...这里需要注意的是shadowOpacity的默认值现在是0。也就是说默认效果下你是看不到任何阴影效果的,想要实现阴影想过请先更改shadowOpacity为一个非0得小于等于1的值。...calculationMode这个属性,有没有发现转折点出动作平滑了许多?...因为大家知道我们时常相对一个物体做旋转动画,然而我们又不单纯的想以layer的中心坐旋转,很多时候可能是layer的某个端点。...这个时候你有三种选择: 更改锚点 更改你的layer层 结合移动和转动 更改锚点就是将锚点移至你想旋转的旋转中心。但是其实老司机不建议你修改锚点。因为锚点是一个layer层的参考点。

    1.4K20
    领券