在ios中开发实现画板功能的方法分析
最近看了一些网上的画板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%
下载地址
在ios中开发实现画板功能的方法分析下载
相关电子资料下载
- iOS17.1可能明天发布,iOS17.1主要修复哪些问题? 377
- 华为全新鸿蒙蓄势待发 仅支持鸿蒙内核和鸿蒙系统应用 719
- 苹果手机系统iOS 17遭用户质疑 731
- iPhone12辐射超标?苹果推送iOS 17.1解决此事 750
- 传华为囤积零部件 目标明年智能手机出货7000万部;消息称 MiOS 仅限国内,小米 28208
- 苹果推送iOS17.0.3,解决iPhone15Pro系列存在机身过热 216
- Testin云测兼容和真机服务平台中上线iPhone 15系列手机 208
- 利尔达推出搭载HooRiiOS的Matter模组 145
- 运放参数解析:输入偏置电流(Ibias)和失调电流(Ios) 128
- 昆仑太科发布支持国产飞腾腾锐D2000芯片的开源BIOS固件版本 448