美文网首页
iOS绘图的两种方式

iOS绘图的两种方式

作者: 佚名_i | 来源:发表于2018-02-08 15:09 被阅读25次

CAShapeLayer 属于 CoreAnimation框架 继承自CALayer
一个CAShapeLayer对象只能配合一个UIBezierPath对象,但是这个UIBezierPath实例可以添加UIBezierPath实例。UIBezierPath提供矢量路径,路径会闭环即使UIBezierPath不是一个闭环取消,这样就得到了一个shape。
UIView的[- drawRect:]方法是用CPU渲染的,而CAShaperLayer是使用GPU效率更高。

CAShapeLayer的属性:

  • path:渲染路径
  • fillColor: 图形的填充颜色(透明或者nil,不然默认是黑色)【重要】
  • lineCap: 线端口样式(粗线段起始位置的圆角还是倒角)
  • lineWidth: 线宽度
  • stokeStart:在曲线中相对起点的位置【动画】
  • strokeEnd:在曲线中相对终点的位置,必须大于stokeStart【动画】
  • [setLineDashPattern:@[@(0),@(25)]; 设置虚线:虚线段长度,虚线段的间隔

UIBezierPath的属性和常用方法:

  • 初始化实例对象

    • 默认 [UIBezierPath bezierPath];
    • 带图形的
      • 矩形曲线: [UIBezierPath bezierPathWithRect:CGRectMake(160, 70, 100, 50)]
      • 圆弧: [UIBezierPath bezierPathWithArcCenter:CGPointMake(200, 200) radius:50 startAngle:M_PI endAngle:3*M_PI clockwise:YES]
      • 椭圆: [+ bezierPathWithOvalInRect:]
  • [- moveToPoint:] 开始一个新的起点来作画

  • [- appendPath:] 添加一个子路线(同心圆)

  • [-addCurveToPoint:controlPoint1:controlPoint2] 绘制二阶贝塞尔曲线

  • [- stroke] 关闭路径,在[- UIVie drawRect:]中,在CAShapeLayer中不会使用这个方法,否则控制面板会打印一些警告。CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

PaintCode生成的代码是基于[- UIVie drawRect:],不能直接用于CAShapeLayer中,这里可以设置UIBezierPath的线宽。

在CAShapeLayer中设置UIBezierPath的线宽不起作用,需要设置CAShapeLayer的线宽。和UIBezierPath的appendPath一样CAShapeLayer也可以addSublayer
小结一下这样类有: NSString,NSMutableArray,NSMutableData,UIView,UILayer,CALayer

参考链接:

UIBezierPath
CGAffineTransform-仿射矩阵的变换
iOS UIBezierPath(贝塞尔曲线)
UIBezierPath

相关文章

  • iOS绘图基础(图形文字曲线相关)

    iOS绘图中,常用的是UIKit高级API和CoreGraphics两种方式。(还有不常用的OpenGLES方式)...

  • iOS绘图的两种方式

    CAShapeLayer 属于 CoreAnimation框架 继承自CALayer一个CAShapeLayer对...

  • 绘图

    IOS中绘图的方式介绍 IOS中貌似绘图的方式还挺多的,有 Core Graphics/QuartZ 2D UIK...

  • IOS 学习之绘图( Core Graphics 教学)

    IOS 绘图 总结 Core Graphics IOS中绘图的三种方式 在UIKit控件中,的drawInReat...

  • core-Animation动画性能优化

    iOS 中core-Animation动画性能优化 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(...

  • iOS绘图详解(链接)

    iOS绘图详解iOS绘图教程

  • CPU VS GPU

    ##CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代iOS...

  • CPU && GPU

    CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代iOS设备...

  • 调试工具Instruments-前篇

    CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代iOS设备...

  • iOS核心动画高级技巧学习---性能调优

    CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代iOS设备...

网友评论

      本文标题:iOS绘图的两种方式

      本文链接:https://www.haomeiwen.com/subject/hyettftx.html