Quartz2D之贝塞尔涂鸦板(UIBezierPath)
2014-11-23 09:26
525 查看
#import "DHPalette.h"
@interface DHPalette ()
/**
记录所有路径的数组
*/
@property (nonatomic,
strong) NSMutableArray *paths;
@end
@implementation DHPalette
#pragma mark - 懒加载
- (NSMutableArray *)paths
{
if (nil ==
_paths) {
_paths = [NSMutableArray
array];
}
return _paths;
}
#pragma mark - 清除上一条线
- (void)back
{
[self.paths
removeLastObject];
[self
setNeedsDisplay];
}
#pragma mark - 清除屏幕
- (void)clear
{
[self.paths
removeAllObjects];
[self
setNeedsDisplay];
}
#pragma mark - 记录手指按下时的起点到最后一条路径当中
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint startPoint = [[touches
anyObject] locationInView:self];
UIBezierPath *path = [UIBezierPath
bezierPath];
[path
moveToPoint:startPoint];
[self.paths
addObject:path];
[self
setNeedsDisplay];
}
#pragma mark - 记录手指再画板上移动的时候的点到最后一条路径当中
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint currentPoint = [[touches
anyObject] locationInView:self];
[[self.paths
lastObject] addLineToPoint:currentPoint];
[self
setNeedsDisplay];
}
#pragma mark - 记录手指抬起的时候的终点到最后一条路径当中
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint endPoint = [[touches
anyObject] locationInView:self];
[[self.paths
lastObject] addLineToPoint:endPoint];
[self
setNeedsDisplay];
}
#pragma mark - 遍历数组画出所有的路径
- (void)drawRect:(CGRect)rect {
[self.paths
enumerateObjectsUsingBlock:^(UIBezierPath *path,
NSUInteger idx, BOOL *stop) {
[path
stroke];
}];
}
@interface DHPalette ()
/**
记录所有路径的数组
*/
@property (nonatomic,
strong) NSMutableArray *paths;
@end
@implementation DHPalette
#pragma mark - 懒加载
- (NSMutableArray *)paths
{
if (nil ==
_paths) {
_paths = [NSMutableArray
array];
}
return _paths;
}
#pragma mark - 清除上一条线
- (void)back
{
[self.paths
removeLastObject];
[self
setNeedsDisplay];
}
#pragma mark - 清除屏幕
- (void)clear
{
[self.paths
removeAllObjects];
[self
setNeedsDisplay];
}
#pragma mark - 记录手指按下时的起点到最后一条路径当中
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint startPoint = [[touches
anyObject] locationInView:self];
UIBezierPath *path = [UIBezierPath
bezierPath];
[path
moveToPoint:startPoint];
[self.paths
addObject:path];
[self
setNeedsDisplay];
}
#pragma mark - 记录手指再画板上移动的时候的点到最后一条路径当中
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint currentPoint = [[touches
anyObject] locationInView:self];
[[self.paths
lastObject] addLineToPoint:currentPoint];
[self
setNeedsDisplay];
}
#pragma mark - 记录手指抬起的时候的终点到最后一条路径当中
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint endPoint = [[touches
anyObject] locationInView:self];
[[self.paths
lastObject] addLineToPoint:endPoint];
[self
setNeedsDisplay];
}
#pragma mark - 遍历数组画出所有的路径
- (void)drawRect:(CGRect)rect {
[self.paths
enumerateObjectsUsingBlock:^(UIBezierPath *path,
NSUInteger idx, BOOL *stop) {
[path
stroke];
}];
}
相关文章推荐
- 手把手教你使用Quartz2D制作彩色涂鸦板和手势解锁
- UI进阶--Quartz2D和触摸事件的简单使用:简易涂鸦板
- iOS_Quartz2D之涂鸦板
- iOS 开发 Quartz 2D+ UIBezierPath绘图大全详解
- Quartz2D - 04.利用贝瑟尔路径(UIBezierPath)绘制基本图形
- Quartz 2D编程指南(4) - 颜色和颜色空间
- UIBezierPath贝塞尔弧线常用方法记
- Quartz 2D 以及手势的综合 小demo
- Quartz2D使用
- Quartz 2D 以及手势的综合 小demo
- 什么是Quartz2D?
- Quartz2D绘图的基本使用
- 关情纸尾-----Quartz2D-图片添加水印
- Quartz2D绘制水印文字没有阴影效果处理
- iOS开发UI篇—Quartz2D简单使用(二)
- Quartz2D的简单使用
- 如何利用Quartz2D给图片添加水印
- iOS开发系列--Quartz 2D绘制2D图形和Core Image中强大的滤镜功能
- 【iOS】Quartz 2D图片压缩和裁剪
- Quartz2D小结