UI基础 - UIBezierPath:反转路径 | 虚线
反转路径 | 虚线
1 - 反转路径 bezierPathByReversingPath:它并不会去修改一条路径的形状, 仅仅是改变了绘制路径的方向,就是从结束点到开始点反向绘制
1 - (void)drawRect:(CGRect)rect{ 2 3 // 第一条:红色路径 4 UIBezierPath *path = [UIBezierPath bezierPath]; 5 path.lineWidth = 8; 6 [path moveToPoint: CGPointMake(10, 120)]; 7 [path addLineToPoint: CGPointMake(180, 40)]; 8 [path addLineToPoint: CGPointMake(40, 80)]; 9 [path addLineToPoint: CGPointMake(140, 140)]; 10 // 屏幕中心坐标 11 [path addLineToPoint: CGPointMake(self.frame.size.width*0.5,self.frame.size.height*0.5)]; 12 // 为了区分不同路径,这里把红色路径进行平移 13 CGAffineTransform transform = CGAffineTransformMakeTranslation(160, 0); 14 [path applyTransform:transform]; 15 [[UIColor redColor] set]; 16 [path stroke]; 17 18 // 反转路径 19 UIBezierPath *reversingPath = [path bezierPathByReversingPath]; 20 reversingPath.lineWidth = 2; 21 [reversingPath addLineToPoint: CGPointMake(10, 10)]; 22 [reversingPath addLineToPoint: CGPointMake(self.frame.size.width*0.5, self.frame.size.height*0.5)]; 23 [[UIColor blackColor] set]; 24 [reversingPath stroke]; 25 }
运行效果
2 - 虚线:setLineDash
1 -(void)drawRect:(CGRect)rect{ 2 3 // 路径 0 4 UIBezierPath *path0 = [UIBezierPath bezierPath]; 5 [path0 moveToPoint: CGPointMake(80, 40)]; 6 [path0 addLineToPoint: CGPointMake(self.frame.size.width - 40, 40)]; 7 path0.lineWidth = 2; 8 9 // 路径 1 10 UIBezierPath *path1 = [UIBezierPath bezierPath]; 11 [path1 moveToPoint: CGPointMake(80, 80)]; 12 [path1 addLineToPoint: CGPointMake(self.frame.size.width - 40, 80)]; 13 path1.lineWidth = 2; 14 15 // 路径 2 16 UIBezierPath *path2 = [UIBezierPath bezierPath]; 17 [path2 moveToPoint: CGPointMake(80, 120)]; 18 [path2 addLineToPoint: CGPointMake(self.frame.size.width - 40, 120)]; 19 path2.lineWidth = 2; 20 21 // 分别配置 3 条路径虚线的规格 22 CGFloat dashLineConfig[] = {8.0, 4.0}; 23 [path0 setLineDash: dashLineConfig 24 count: 2 25 phase: 0]; 26 27 28 CGFloat dashLineConfig1[] = {8.0, 4.0, 16.0, 8.0}; 29 [path1 setLineDash: dashLineConfig1 30 count: 4 31 phase: 0]; 32 33 34 CGFloat dashLineConfig2[] = {8.0, 4.0, 16.0, 8.0}; 35 [path2 setLineDash: dashLineConfig2 36 count: 4 37 phase: 12]; 38 39 // 绘制 40 [[UIColor orangeColor] set]; 41 [path0 stroke]; 42 [path1 stroke]; 43 [path2 stroke]; 44 45 }
运行效果:橘黄部分是实际效果图
分类:
UI章节
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)