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

  • 相关阅读:
    网络性能测试工具iperf详解
    linux下的抓包工具tshark和 tcpdump用法
    linux下网络发包工具
    >/dev/null 2>&1 的作用
    linux screen 命令详解
    wget 命令操作实例
    Centos Linux release 7.2.15ll (core) yum 安装java环境
    日志监听
    java 身份证工具类
    java 生成微信的二维码 工具类
  • 原文地址:https://www.cnblogs.com/tufei7/p/9874672.html
Copyright © 2011-2022 走看看