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

如何在Swift 5.0中通过CAShapeLayer开始和结束带点的直线

在Swift 5.0中,可以通过使用CAShapeLayer来创建带点的直线,并设置其起始点和结束点。

首先,需要导入QuartzCore框架,以便使用CAShapeLayer类。在Swift中,可以通过以下代码导入:

代码语言:txt
复制
import QuartzCore

接下来,可以创建一个CAShapeLayer对象,并设置其路径为一条直线。可以使用UIBezierPath类来创建路径。以下是一个示例代码:

代码语言:txt
复制
let startPoint = CGPoint(x: 50, y: 100)
let endPoint = CGPoint(x: 250, y: 100)

let path = UIBezierPath()
path.move(to: startPoint)
path.addLine(to: endPoint)

let shapeLayer = CAShapeLayer()
shapeLayer.path = path.cgPath

在上述代码中,我们定义了起始点和结束点,并使用UIBezierPath创建了一条路径。然后,将路径设置为CAShapeLayer的路径。

接下来,可以设置CAShapeLayer的属性,以便在直线的起始点和结束点添加点。可以使用CAShapeLayer的strokeStart和strokeEnd属性来控制直线的起始和结束位置。以下是一个示例代码:

代码语言:txt
复制
shapeLayer.strokeStart = 0.0
shapeLayer.strokeEnd = 1.0

在上述代码中,我们将strokeStart设置为0.0,表示直线的起始位置,将strokeEnd设置为1.0,表示直线的结束位置。

最后,将CAShapeLayer添加到视图的图层中,以便显示直线。以下是一个示例代码:

代码语言:txt
复制
view.layer.addSublayer(shapeLayer)

在上述代码中,我们将CAShapeLayer添加到视图的图层中,以便将直线显示在屏幕上。

完整的示例代码如下:

代码语言:txt
复制
import UIKit
import QuartzCore

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let startPoint = CGPoint(x: 50, y: 100)
        let endPoint = CGPoint(x: 250, y: 100)
        
        let path = UIBezierPath()
        path.move(to: startPoint)
        path.addLine(to: endPoint)
        
        let shapeLayer = CAShapeLayer()
        shapeLayer.path = path.cgPath
        shapeLayer.strokeStart = 0.0
        shapeLayer.strokeEnd = 1.0
        
        view.layer.addSublayer(shapeLayer)
    }
}

这样,就可以在Swift 5.0中使用CAShapeLayer创建带点的直线了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

绘图-几个较复杂统计图案例实现分析

moveToPoint,addLineToPoint,于是这条UIBezierPath就包含了三段直线,把UIBezierPath 赋值给CAShapeLayer后,直接对 CAShapeLayer...** 在 drawRect 中 对小白点动画延迟到 x 秒后,弹性动画开始延迟时间为 0秒持续 x秒,这样就可以保证在弹性动画结束后,开始小白点动画。...通过数值比例换算,得到每一个扇形开始弧度结束弧度值(0~M_PI*2)....得到每一个环外小圆中心点坐标后,根据该点X坐标值跟当前页面中心点X坐标进行比较,确定小圆尾部线朝向以及字体对其方向(在左侧字体向左对齐,在右边字体向右对齐) 环外圆点直线使用CoreGraphics...circleRadius + 10) * cos(h); CGFloat yy = self.frame.size.height / 2 + (_circleRadius + 10) * sin(h); 画环外直线

1.4K20

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

1.CABasicAnimation CABasicAnimation动画主要是设置某个动画属性初始值fromValue结束值toValue,来产生动画效果。...可以设置layer是保持动画开始状态还是动画结束状态,或是其他。 autoreverses 表示动画结束后是否 backwards(回退) 到动画开始状态。...通过与代理方法结合使用,可以用多段动画组合成一个完整动画。...方法二:绘制圆弧路径,参数1是中心点位置,参数2是半径,参数3是开始弧度值,参数4是结束弧度值,参数5是是否顺时针(YES是顺时针方向,NO逆时针)。 方法三:根据某个路径绘制路径。...进度条.gif 上图这样视图是用UIBezierPath用多个CAShapeLayer制作出来,而动画效果只需要改变进度layerstrokeEnd修改下面代表水面进度视图位置即可。

1.1K40

iOS动画系列之七:实现类似Twitter启动动画1. CAKeyframeAnimation2. CAAnimationGroup3. 实现类似Twitter启动动画

来来来,今天咱们通过实现一个类似Twitter启动动画来看看CAKeyFrame AnimationCAAnimation Group怎么玩。...CAKeyFrame AnimationCAAnimation Group.png 下面展示一下写完之后成果: ? ani.gif 源代码可以在这里下载,里面有OCSwift两版。...Group(OCSwift两版) 1....maskAni.fillMode = kCAFillModeForwards; return maskAni; } 留一个小问题: 我在OCSwift里面对不同View使用了mask...因为在工作中碰到大部分动画都是通过UIView动画block实现,其他都基本上都是需要用到CAShapeLayer。我们下次玩点好玩吧~ 如果还有兴趣,可以看看本系列其他文章哈。

1.4K30

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

这篇文章通过使用CAShapeLayerUIBezierPath来画出一个动态显示剩余流量小动画。...CAShapeLayer是一个通过矢量图形而不是位图来绘制图层子类。指定诸如颜色线宽等属性,用path来定义想要绘制图形,最后CAShapeLayer就自动渲染出来了。...1.3.2 strokeStart & strokeEnd strokeStart它表示描线开始地方占总路径百分比。默认值是0。 strokeEnd表示绘制结束地方站总路径百分比。...= processSectorPath.cgPath processSectorLayer.lineWidth = 35 // 进度起点结束位置...,设置进度条修改这个值结束数值就可以了 processSectorLayer.strokeStart = 0.5 processSectorLayer.strokeEnd

1.6K30

路径布局-基于数学函数视图布局方法

对于构建一个平面坐标来说,我们需要指定坐标的原点在哪里,同时我们还要指定坐标中横轴代表是自变量还是因变量,同时我们还要指定纵轴中值在原点以上是正数还是负数,同时我们还要指定函数曲线自变量开始结束取值区间来构建有限平面区域...为了对坐标的表征我们抽象出了一个坐标类: /** * 坐标轴设置类,用来描述坐标轴信息。一个坐标轴具有原点、坐标系类型、开始结束点、坐标轴对应值这四个方面的内容。...*/ @property(nonatomic, assign) BOOL isReverse; //开始位置结束位置。...对于直角坐标方程函数来说x区间由MyCoordinateSetting中startend来指定,默认步长是1,如果不指定开始结束区间默认就是布局视图尺寸作为区间。...对于参数方程函数来说t区间由MyCoordinateSetting中startend来指定,默认步长是1,如果不指定开始结束区间默认就是布局视图尺寸作为区间。

78720

老司机带你走进Core Animation 之CAShapeLayerCATextLayer

Animation 之CADisplayLink 老司机带你走进Core Animation 之几种动画简单应用 老司机带你走进Core Animation 之CAShapeLayerCATextLayer...就讲讲CALayer两个子类,CAShapeLayerCATextLayer吧。...然而CAShapeLayer则是作为一个强大无比子类出现通过名字我们大概就可以猜到,他可以画出各样形状。...其实说到这里CAShapeLayer基本用法就结束了。 你这么说,意思是还有特殊用法咯? 说不上特殊用法,是两个比较实用但又偏门点。...比如上图中第一段实现距离明显小于5,其实他是2,因为我们从3开始计算,5 - 3就剩2了。 说到这里,CAShapeLayer一些用法就真的介绍完毕了。

1.4K20

绘图-UIBezierPath

所以 UIBezierPath 是基于 Core Graphics 实现一项绘图技术。 使用此类可以定义常见圆形、多边形等形状 。我们使用直线、弧(arc)来创建复杂曲线形状。...每一个直线段或者曲线段结束地方是下一个开始地方。每一个连接直线或者曲线段集合成为subpath。一个UIBezierPath对象定义一个完整路径包括一个或者多个subpaths。...图片来自网络 /** * 画二次贝塞尔曲线,是通过调用此方法来实现。一般moveToPoint:配合使用。...使得其成为我们当前剪切路径 - (void)addClip; 值得注意是: UIBezierPath可以独立绘图,并不需要借助 CAShapeLayer等图层。...不知道为什么朋友可以移步到我这篇文章: UIViewlayoutSubviewsdrawRect ---- ?

1.3K20

iOS Core Animation:Advanced Techniques

0.0代表着渐变开始,1.0代表着结束。...begin]开始一次事务,任何在一次run loop循环中属性改变都会被集中起来,然后做一次0.25秒动画。...类似的,removeOnCompletion被设置为NO动画将会在动画结束时候仍然保持之前状态。这就产生了一个问题,当动画开始之前动画结束之后,被设置动画属性将会是什么值呢?...这就是所谓填充,因为动画开始结束值用来填充开始之前结束之后时间。 这种行为就交给开发者了,它可以被CAMediaTimingfillMode来控制。...,向后或者即向前又向后去填充动画状态,使得动画在开始前或者结束后仍然保持开始结束那一刻值。

1.8K30

iOS动画系列之五:基础动画之缩放篇&旋转篇Swift+OC1. 思路最终成果2. 抽取公共方法3. 懒加载Layer4. 添加动画

么么哒~爱你们~ OCSwift下载地址如下: https://git.oschina.net/atypical/CABasic-Animation.git iOS实践:CABasic-Animation...--- 第一篇:iOS动画系列之一:通过实战学习CALayer透视原理。...做一个带时分秒指针时钟动画(上) 第二篇:iOS动画系列之二:通过实战学习CALayer透视原理。做一个带时分秒指针时钟动画。...包含了OCSwift两种源代码(下) 第三篇:iOS动画系列之三:Core Animation。介绍了Core Animation常用属性方法。 第四篇:CABasic Animation。...第八篇:iOS动画系列之八:使用CAShapeLayer绘画动态流量图 第九篇:iOS动画系列之九:实现点赞动画及播放起伏指示器 第十篇:实战系列:绘制过山车场景

2.3K10

Ios常用第三方动画框架(三)

JWAnimatedImage.swift - JWAnimatedImage.swift集中了目前主流 GIF 显示库( FLAnimatedImage,Gifu 等)优点,进行重构,代码短小精悍...VJDeviceSpecificMedia -如何根据设备选择不同尺寸图片 可以通过设置不同尺寸设备LaunchImage,来使得App适配这些设备,要是在不同不同尺寸设备上使用不同大小图片,则需要在代码中一一判断...拖拽到一定长度会消失,可以通过系数设置来控制拖拽长度。气泡也支持多种属性设置。 PPDragDropBadgeView - 实现了类似于QQ 5.0 水滴拖拽效果....XTLoopScroll - 用两个 timer 三个重用 view 实现无限循环 scrollView,1自动轮播 2点击监听回调当前图片 3手动滑动后重新计算轮播开始时间, 良好用户体验。...OCSwift两个版本来供开发者使用,非常丝滑顺畅效果。

9.1K30

iOS动画系列之六:利用CABasic Animation完成带动画特效登录界面1. 画风突变笑脸2. 心跳3. iOS实践:实现一个带动效登录界面

开始分享这个iOS Apprentice Notes时候就是打算从基础部分开始,大体都过一遍之后再找专题或者自己感兴趣部分深入进去。...CABasic Animation成果展示.gif 源代码可以在这里下载,里面有OCSwift两版。...https://git.oschina.net/atypical/CABasic-Animation.git iOS动画系列之CABasic-Animation(OCSwift两版) 1....做一个带时分秒指针时钟动画(上) 第二篇:iOS动画系列之二:通过实战学习CALayer透视原理。做一个带时分秒指针时钟动画。...包含了OCSwift两种源代码(下) 第三篇:iOS动画系列之三:Core Animation。介绍了Core Animation常用属性方法。 第四篇:CABasic Animation。

1.5K60
领券