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

再谈CAAnimation动画

property CGFloat shadowRadius; @property(nullable) CGPathRef shadowPath; 虽然是取名字是BasicAnimation, 但能实现动画还是挺多...注意时NSValue封装 还有一个fromValue, 动画开始位置, 不设置的话就是View当前位置 下面时用CABasicAnimation写动画修改圆角动画, 把一个正方形慢慢变成圆形...内容是NSValue封装CGpoint 还有一个变量Path可以设置, 这个属性可以用UIBezierPath来设定特殊形状路径, 如果有设置path属性, values属性就不会生效了 上代码...关于UIBezierPath后面会再单独 然后我们说下动画组, CAAnimation是可以几个动画合并在一起 上代码: //2.2 创建CABasicAnimation动画 CABasicAnimation...这里我们把上面创建一个动画修改圆角跟沿着正方形路线走动画加入一个CAAnimationGroup中 这里在要加入组中动画最后不要设置延迟时间, 可能会出问题 老司机说animations数组中你所有

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

iOS动画三板斧(二)--CoreAnimation动画介绍使用附加

可以设置layer是保持动画开始前状态还是动画结束后状态,或是其他。 autoreverses 表示动画结束后是否 backwards(回退) 动画开始前状态。...示例代码可能与gif图不太一致,因为gif图是其他demo中录制下来。...方法四:根据某个CGRect绘制内切圆或椭圆(CGRect是正方形即为圆,为长方形则为椭圆)。 方法五:根据某个CGRect绘制路径。...方法六:绘制带圆角矩形路径,参数2哪个角,参数3,横、纵向半径。 方法七:绘制每个角都是圆角矩形,参数2是半径。...- (void)appendPath:(UIBezierPath *)bezierPath; // 拼接曲线 如果将路径显示图案显示视图上呢?

1.1K40

绘图-UIBezierPath

所以 UIBezierPath 是基于 Core Graphics 实现一项绘图技术。 使用此类可以定义常见圆形、多边形等形状 。我们使用直线、弧(arc)来创建复杂曲线形状。...* * 根据一个Rect 画一个圆角矩形曲线 (Radius:圆角半径) 当Rect为正方形时且Radius等于边长一半时 画是一个圆 * @param rect CGRect一个矩形 *.../ + (instancetype)bezierPathWithOvalInRect:(CGRect)rect; /** * 根据一个Rect 画一个圆角矩形曲线 当Rect为正方形时且.../** * 设置第一个起始点到接收器 * @param point 起点坐标 */ - (void)moveToPoint:(CGPoint)point; /** * 附加一条直线接收器路径...kCGLineCapRound, 轻微圆角 kCGLineCapSquare 正方形 }; // 端点类型 @property(nonatomic) CGLineCap lineCapStyle

1.2K20

学会不一样Loading图

且听我娓娓道来,相关代码已经放在github 本文概要 一、增加覆盖层以及动态效果 1、获取控件path // 获取每个子控件path,用于后面的加遮盖 mask layer // 添加圆角...获取每个控件,并且求出控件path(也就是控件最外边那些线),原本控件遮罩只是矩形,为了美观,我建议每个控件path添加圆角 2、添加覆盖层,仅显示控件path渐变色图层 //...2、 添加渐变色图层挡住控件覆盖层 3、为渐变色图层设置mask,从而显示mask面积下面的渐变色图层(原理看下方) 原理: 遮罩层必须至少有两个图层,上面的一个图层为“遮罩层”,下面的称...遮罩层上图,自己是不显示。它只起到一个透光作用。假定遮罩层上是一个正圆,那么光线就会透过这个圆形,射到下面的被遮罩层上,只会显示一个圆形图形。...如果遮罩层上什么都没有,那么光线就无法透下面来,那么下面的被遮罩层什么也显示不出来。

89240

属性动画核心方法:ValueAnimator.ofInt(int... values)

比如 ValueAnimator.ofInt(0,100) , 实现即数值0平稳变化100 比如实现如下一个效果: 改变控件样式,圆形圆角方形切换 实现思路很简单,即高度不变,改变控件宽度...,同上,不过圆角设置可以设置小一点,这个读者可以仿着圆角自己写一个,完整代码请到最后查看 3、动画实现方法,以长方形圆形为例,只需依赖ValueAnimator.ofInt()方法设置数值25dp...屏幕宽度-两边边距即可 1 // 长方形圆形 2 public void rectToCir(){ 3 // 异常,如果动画对象为null 或者 动画在执行中 4..., 圆形宽度为50dp, 因为设置空间高度为50dp,圆角为25dp,即实现了圆形图标 8 // ofInt(int a, int b)表示 动画取值ab 9...30dp, 圆形宽度为50dp, 因为设置空间高度为50dp,圆角为25dp,即实现了圆形图标 63 // ofInt(int a, int b)表示 动画取值ab 64

98120

iOS动画系列之八:使用CAShapeLayer绘画动态流量图1. CAShapeLayer2. 实战:绘制一个镂空图层动画3. 使用CAShapeLayer绘画动态流量图

这篇文章通过使用CAShapeLayer和UIBezierPath来画出一个动态显示剩余流量动画。...1.2 基本属性 属性名 作用 path 图像绘制路径,path不支持隐式动画 fillColor 填充path颜色,或无填充。默认为不透明黑色。 fillRule 填充path规则。...lineDashPattern: 这是一个NSNumber数组,索引1开始记,奇数位数值表示实线长度,偶数位数值表示空白长度。系统会按照数值自动重复设置虚线。...view.layer.addSublayer(hollowLayer) hollowLayer.position = view.center // 最外面待圆角方形...), cornerRadius: 5) // 中间镂空圆形path let hollowPath = UIBezierPath.init(ovalIn: CGRect(x

1.5K30

iOS编程101:如何创建圆形头像和圆角图片

IOS7一个变化是相对于方形图像,更偏爱于使用圆形图像。在内置应用中可以看到圆形图标或圆形图像,如联系人和电话应用。...UIKit中每个视图(例如UIView、UIImageView)都备份在一个CALayer类实例中(即layer对象)。layer对象用来管理视图备份存储和处理视图相关动画。...layer对象提供了多种属性,使用它们来控制视图可视内容: 背景颜色 边框和边框宽度 阴影颜色,宽度等 Opacity(不透明度) 圆角半径 Corner radius就是我们用来绘制圆角圆形图像属性...所以上面的第一行是设置layer对象(CALayer类一个实例)圆角半径。将方形图像变成圆形图像,半径应设置为UIImageView宽度一半。例如,如果方形图像宽度是100像素。...现在编译和运行应用程序,你会得到一个圆形头像。 ? 非常容易吧。只需两行代码,图像方形变为圆形。无需Photoshop。 添加边框 接下来,我们给头像添加边框使它更漂亮点。同样,也只需要两行。

2.1K20

【Flutter】Hero 动画 ( Hero 实现径向动画 | Hero 组件 createRectTween 设置 )

tag 字符串 ; this.createRectTween : 可以为空 , 用于 定义 Hero 组件边界 , 以及定义 Hero 组件在界面切换时 , 源界面的起始位置 目的界面的最终位置..., 如圆形方形 , 方形变三角形 ; Hero 径向动画 与 普通动画区别就是是否设置了 createRectTween 参数 ; 一、圆形方形组件 ---- 圆形方形变化组件 : 该组件可以根据不同参数实现圆形方形变化..., 或方形圆形变化 ; /// Hero 组件 , 径向动画扩展 /// 该组件主要用于裁剪组件用 class OvalRectWidget extends StatelessWidget {...( 红色 ) 与 ClipRect 方形裁剪组件 ( 橙色 ) 位置重叠 , 那么该方形裁剪组件肯定就被裁剪成圆形了 ; 上面两个组件就是 Hero 径向动画主要作用组件 , 该动画执行前...就是方形圆形变化辅助类 return MaterialRectCenterArcTween(begin: begin, end: end); } /// 创建页面 2 , 这是点击后跳转到页面

1.1K40

Swift-图像性能优化

(true) 这里,如果类似新闻APP图片都只是显示方形,就可以搞定了。...头像绝大多数都是圆角头像,而且现在越来越多考虑性能方面的问题。很多人都不用cornerRadius,认为用cornerRadius不是一个好解决办法。...// 1> 实例化一个圆形路径 let path = UIBezierPath(ovalIn: rect) // 2> 进行路径裁切 - 后续绘图,都会出现在圆形路径内部,外部全部干掉 path.addClip...let path = UIBezierPath(ovalIn: rect) // 2> 进行路径裁切 - 后续绘图,都会出现在圆形路径内部,外部全部干掉...直接UIBezierPath(rect: rect)实例化了一个矩形路径,然后在路径内绘图。但是突然想到不用裁切,不用设置圆形头像边框,突然感觉这样就有点多此一举了,因此将多余代码就都删除了。

1.6K70

ios view 圆角

我们给一个View设置圆角一般都是用如下代码 // 设置layer超出父图层部分剪切掉 self.cornerView.layer.masksToBounds = YES; // 设置圆角半径,若imageView1...为正方形,设置圆角半径为边长一半可实现圆效果 self.cornerView.layer.cornerRadius = 20.0; 但是如果需求是只要左上和右上圆角以上方法肯定不能实现,直接上代码 UIBezierPath...*bezierPath = [UIBezierPath bezierPathWithRoundedRect:self.cornerView.bounds byRoundingCorners:UIRectCornerTopLeft...shapeLayer = [CAShapeLayer layer]; // 设置绘制路径 shapeLayer.path = bezierPath.CGPath; // 将shapeLayer设置为cornerViewlayer...mask self.cornerView.layer.mask = shapeLayer; 实现四个圆角 // 绘制4个角, UIBezierPath *bezierPath = [UIBezierPath

1K50

老司机带你走进Core Animation 之CAShapeLayer和CATextLayer

别不当回事,你错时候就知道咋回事了另外,如下图所示,整个圆形UIBezierPath其实是分为多个子路径绘制,这个特性在CAKeyframeAnimation中会有特殊应用(可以回顾一下第一篇)。...layer.fillRule = kCAFillRuleEvenOdd; [self.view.layer addSublayer:layer]; 可以看到,事实上老司机叠加了两条路径,一个圆角矩形一个圆形...真不是,这次说他主要是想表达这个属性是默认支持隐式动画。 隐式动画就是不用显示声明,系统默认为我们实现动画。...1,对吧。...这就是因为他隐式动画了。因为这时候我们不需要他动画是吧?知道原因就好办了,我们可以通过 CATransaction显式关闭他动画,恢复成0,再打开动画,是不是就行了?哈哈哈,就是这么简单。

1.4K20

他们主动布局(autolayout)环境图像编辑器

留意上图动画,qq总是可以确保圆环全然被图片所覆盖,假设拖动 或者放缩使得图片以外黑色区域进入了圆环。图片会自己主动弹回刚好可以全然覆盖 状态。...一、预期效果 用户相冊或者相机中选取/拍摄一张照片,载入图片编辑界面,用户能够拖 动、放缩照片。使圆形选取框中截图合适图像作为用户头像。...2.2剪切框实现 图二中能够看出剪切框是一个比較特殊界面:圆形虚线框内部是全然透明 (clearColor or alpha = 0),而外围填充部分则是半透明效果(blackColor...绘制剪切框,绘制示意图例如以下: 图4.剪切框绘制 1.绘制两条封闭线,一条是方形。刚好覆盖整个view边界。...CGContextSetRGBFillColor(contextRef, 0, 0, 0, 0.35); CGContextSetLineWidth(contextRef, 3); //计算圆形外切正方形

77910

绘图-CAShapeLayer、CABasicAnimation以及核心动画

一般来说,layer可以有两种用途:一是对view相关属性设置,包括圆角、阴影、边框等参数,更详细参数请点击这里;二是实现对view动画操控。...#比如末端是矩形还是圆形,都是 UIBezierPath设置,而且fillColor 也是 UIBezierPath区域内颜色。...removedOnCompletion -> 是否让图层保持显示动画执行后状态,默认为YES,也就是动画执行完毕后涂层上移除,恢复执行前状态,如果设置为NO,并且设置fillMode为kCAFillModeForwards...过渡到当前value; 如果只设置了toValue ,那么动画就会当前value过渡到toValue; 如果只设置了byValue ,那么动画就会当前...在这个动画里,是设置了要旋转到弧度,根据以上规则,动画将会它当前弧度专旋转到我设置弧度.

2.6K30

使用UIBezierPath绘制图形

当需要画图时我们一般创建一个UIView子类, 重写其中drawRect方法 再drawRect方法中利用UIBezierPath添加画图 UIBezierPath使用方法: (1)创建一个Bezier...(2)使用方法moveToPoint:去设置初始线段起点。 (3)添加line或者curve去定义一个或者多个subpaths。 (4)改变UIBezierPath对象跟绘图相关属性。...我们可以用UIBezierPathbezierPathWithOvallInRect:CGRect(rect)方法来画圆形和椭圆, 代码如下 - (void)drawRect:(CGRect)rect...如果要设置多个圆角的话就给byRoundingCorners多设置几个角度, 角度可选如下 typedef NS_OPTIONS(NSUInteger, UIRectCorner) { UIRectCornerTopLeft...还可以直接在path中添加圆形段 [path addArcWithCenter:CGPointMake(100, 200) radius:100 startAngle

1K40
领券