zoukankan      html  css  js  c++  java
  • iOS-Core-Animation-Advanced-Techniques/13-高效绘图 【没理解】

    #import "DrawingView.h"
    #import <QuartzCore/QuartzCore.h>
    
    @interface DrawingView ()
    
    @property (nonatomic, strong) UIBezierPath *path;
    
    @end@implementation DrawingView
    
    + (Class)layerClass // 这是啥意思?????哦哦 调用self.layer可以直接返回CAShapLayer
    {
        //this makes our view create a CAShapeLayer
        //instead of a CALayer for its backing layer
        return [CAShapeLayer class];
    }
    
    - (void)awakeFromNib
    {
        //create a mutable path
        self.path = [[UIBezierPath alloc] init];
    
        //configure the layer
        CAShapeLayer *shapeLayer = (CAShapeLayer *)self.layer;
        shapeLayer.strokeColor = [UIColor redColor].CGColor;
        shapeLayer.fillColor = [UIColor clearColor].CGColor;
        shapeLayer.lineJoin = kCALineJoinRound;
        shapeLayer.lineCap = kCALineCapRound;
        shapeLayer.lineWidth = 5;
    }
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //get the starting point
        CGPoint point = [[touches anyObject] locationInView:self];
    
        //move the path drawing cursor to the starting point
        [self.path moveToPoint:point];
    }
    
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //get the current point
        CGPoint point = [[touches anyObject] locationInView:self];
    
        //add a new line segment to our path
        [self.path addLineToPoint:point];
    
        //update the layer with a copy of the path
        ((CAShapeLayer *)self.layer).path = self.path.CGPath;
    }
    @end

    从这段可知,使用CAShapLayer的性能要好于重写drawRect,因为drawRect,drawLayer使用的Core Graphic,Core Graphic会有性能问题(内存消耗),避免使用Core Graphic

  • 相关阅读:
    常用JVM配置参数
    JVM运行机制
    go 奇技淫巧
    如何实现LRU(最近最少使用)缓存淘汰算法?
    数组下标为什么是0而不是1?
    ServiceMesh 演化进程
    CAP定理详解
    vscode 调试配置信息
    Ubuntu 断网问题解决
    ubuntu 关闭指定占用端口
  • 原文地址:https://www.cnblogs.com/tufei7/p/9874672.html
Copyright © 2011-2022 走看看