在ios中開發(fā)實現(xiàn)畫板功能的方法分析
最近看了一些網上的畫板demo,這些demo的實現(xiàn)方式基本上是使用CGContextRef或者UIBezierPath實現(xiàn),但是基本上都存在一個比較嚴重的bug,在使用擦除功能的時候基本上都是直接將畫板的顏色改為背景的顏色,那么當背景的是一張圖片或者背景并不是單一顏色而是多種顏色時,擦除功能就會失效。本demo文章將解決這樣一個問題。按照國際慣例先上圖。
demo主要使用CGContextRef實現(xiàn),擦除功能使用kCGBlendModeDestinationIn和clearColor聯(lián)合使用實現(xiàn)。
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%
下載地址
在ios中開發(fā)實現(xiàn)畫板功能的方法分析下載
相關電子資料下載
- iOS17.1可能明天發(fā)布,iOS17.1主要修復哪些問題? 377
- 華為全新鴻蒙蓄勢待發(fā) 僅支持鴻蒙內核和鴻蒙系統(tǒng)應用 719
- 蘋果手機系統(tǒng)iOS 17遭用戶質疑 731
- iPhone12輻射超標?蘋果推送iOS 17.1解決此事 750
- 傳華為囤積零部件 目標明年智能手機出貨7000萬部;消息稱 MiOS 僅限國內,小米 28208
- 蘋果推送iOS17.0.3,解決iPhone15Pro系列存在機身過熱 216
- Testin云測兼容和真機服務平臺中上線iPhone 15系列手機 208
- 利爾達推出搭載HooRiiOS的Matter模組 145
- 運放參數(shù)解析:輸入偏置電流(Ibias)和失調電流(Ios) 128
- 昆侖太科發(fā)布支持國產飛騰騰銳D2000芯片的開源BIOS固件版本 448