博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIBezierPath和CAShapeLayer的关系
阅读量:6853 次
发布时间:2019-06-26

本文共 1737 字,大约阅读时间需要 5 分钟。

CAShapeLayer是基于贝塞尔曲线而存在的, 如果没有贝塞尔曲线提供路径来画出图形, CAShapeLayer就没有存在的意义, CAShapeLayer可以使得不用在drawRect:方法中实现画图.

另外, CAShapeLayer是属于CoreAnimation框架的, 是基于GPU的来进行渲染的, 不比使用CoreGraphic框架, 是基于CPU来渲染的, 所以CAShapeLayer效率相对比较高一些

下面我简单的使用CAShapeLayer和贝塞尔曲线画了矩形和椭圆形, 代码如下:

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];        [self createOval];}// 矩形(正方形)- (void)createRect{    // 创建矩形贝塞尔曲线路径    UIBezierPath *rect = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 20, 30)];        // 创建CAShapeLayer    CAShapeLayer *shapeLayer = [CAShapeLayer layer];    // 设置尺寸    shapeLayer.frame         = CGRectMake(0, 0, 100, 200);    // 设置位置    shapeLayer.position      = self.view.center;    // 填充颜色    shapeLayer.fillColor     = [UIColor whiteColor].CGColor;    // 路径颜色    shapeLayer.strokeColor   = [UIColor blackColor].CGColor;        // 关联    shapeLayer.path = rect.CGPath;        // 显示    [self.view.layer addSublayer:shapeLayer];}// 椭圆(圆)- (void)createOval{    // 创建椭圆形贝塞尔曲线路径    UIBezierPath *oval = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 200, 200)];        // 创建CAShapeLayer    CAShapeLayer *shapeLayer    = [CAShapeLayer layer];    // 设置尺寸,    shapeLayer.frame            = CGRectMake(0, 0, 200, 200);    // 设置位置(设置的是shapeLayer的中心点位置)    shapeLayer.position = self.view.center;    // 设置背景颜色    shapeLayer.backgroundColor  = [UIColor greenColor].CGColor;    // 设置填充颜色(注意, 这里不是设置背景颜色)    shapeLayer.fillColor        = [UIColor redColor].CGColor;    // 设置边框颜色(路径颜色)    shapeLayer.strokeColor      = [UIColor blueColor].CGColor;        // 关联ShapeLayer和贝塞尔曲线    shapeLayer.path = oval.CGPath;        // 显示    [self.view.layer addSublayer:shapeLayer];    }

 

转载地址:http://wkyyl.baihongyu.com/

你可能感兴趣的文章
提高用户体验方式:饥饿营销
查看>>
Java8中的LocalDateTime工具类
查看>>
Exchange 2013 PowerShell创建自定义对象
查看>>
RAID-10 阵列的创建(软)
查看>>
javaScript的调试(四)
查看>>
nginx不使用正则表达式匹配
查看>>
利用putty进行vnc + ssh tunneling登录
查看>>
hadoop1.x作业提交过程分析(源码分析第二篇)
查看>>
默认安装vsftpd后
查看>>
《Redis设计与实现》读书笔记
查看>>
waiting for changelog lock.
查看>>
小白学爬虫-批量部署Splash负载集群
查看>>
你离BAT之间,只差这一套Java面试题
查看>>
laravel package 推荐,数据备份
查看>>
Synchronized锁在Spring事务管理下,为啥还线程不安全?
查看>>
环境变量PATH cp命令 mv命令 文档查看cat/more/less/head/tail
查看>>
阿里云亮相2019联通合作伙伴大会,边缘计算等3款云产品助力5G时代产业数字化转型...
查看>>
dubbo源码分析-服务端发布流程-笔记
查看>>
阿里云发布Apsara SA系列混合云存储阵列
查看>>
GoJS教程:链接模版
查看>>