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

  • 相关阅读:
    4.2Python数据类型(2)之布尔类型
    4.1Python数据类型(1)之数值类型
    AvalonJS+MVVM实战部分源码
    数据库的总结
    面向对象的Java实现
    静态HTML总结
    JS总结
    JSP开发Web应用系统
    使用C#开发数据库应用程序
    深入.NET平台和C#编程
  • 原文地址:https://www.cnblogs.com/tufei7/p/9874672.html
Copyright © 2011-2022 走看看