国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

在ios中開發實現畫板功能的方法分析

大小:0.53 MB 人氣: 2017-09-25 需要積分:1

  最近看了一些網上的畫板demo,這些demo的實現方式基本上是使用CGContextRef或者UIBezierPath實現,但是基本上都存在一個比較嚴重的bug,在使用擦除功能的時候基本上都是直接將畫板的顏色改為背景的顏色,那么當背景的是一張圖片或者背景并不是單一顏色而是多種顏色時,擦除功能就會失效。本demo文章將解決這樣一個問題。按照國際慣例先上圖。

  

  demo主要使用CGContextRef實現,擦除功能使用kCGBlendModeDestinationIn和clearColor聯合使用實現。

  1、新建DWStroke類存儲CGContextRef信息

  DWStroke.h

  #import 《UIKit/UIKit.h》

  typedef struct CGPath *CGMutablePathRef;

  typedef enum CGBlendMode CGBlendMode;

  @interface DWStroke : NSObject

  @property (nonatomic) CGMutablePathRef path;

  @property (nonatomic, assign) CGBlendMode blendMode;

  @property (nonatomic, assign) CGFloat strokeWidth;

  @property (nonatomic, strong) UIColor *lineColor;

  - (void)strokeWithContext:(CGContextRef)context;

  @end

  DWStroke.m

  - (void)strokeWithContext:(CGContextRef)context {

  CGContextSetStrokeColorWithColor(context, [_lineColor CGColor]);

  CGContextSetLineWidth(context, _strokeWidth);

  CGContextSetBlendMode(context, _blendMode);

  CGContextBeginPath(context);

  CGContextAddPath(context, _path);

  CGContextStrokePath(context);

  }

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?