Quartz2D之贝塞尔涂鸦板(UIBezierPath)
来源:互联网 发布:学编程好找工作吗 编辑:程序博客网 时间:2024/05/24 02:46
#import "DHPalette.h"
@interface DHPalette ()
/**
记录所有路径的数组
*/
@property (nonatomic,strong) NSMutableArray *paths;
@end
@implementation DHPalette
#pragma mark - 懒加载
- (NSMutableArray *)paths
{
if (nil == _paths) {
_paths = [NSMutableArrayarray];
}
return _paths;
}
#pragma mark - 清除上一条线
- (void)back
{
[self.pathsremoveLastObject];
[selfsetNeedsDisplay];
}
#pragma mark - 清除屏幕
- (void)clear
{
[self.pathsremoveAllObjects];
[selfsetNeedsDisplay];
}
#pragma mark - 记录手指按下时的起点到最后一条路径当中
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint startPoint = [[touches anyObject] locationInView:self];
UIBezierPath *path = [UIBezierPathbezierPath];
[pathmoveToPoint:startPoint];
[self.pathsaddObject:path];
[selfsetNeedsDisplay];
}
#pragma mark - 记录手指再画板上移动的时候的点到最后一条路径当中
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint currentPoint = [[touches anyObject] locationInView:self];
[[self.pathslastObject] addLineToPoint:currentPoint];
[selfsetNeedsDisplay];
}
#pragma mark - 记录手指抬起的时候的终点到最后一条路径当中
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint endPoint = [[touches anyObject] locationInView:self];
[[self.pathslastObject] addLineToPoint:endPoint];
[selfsetNeedsDisplay];
}
#pragma mark - 遍历数组画出所有的路径
- (void)drawRect:(CGRect)rect {
[self.pathsenumerateObjectsUsingBlock:^(UIBezierPath *path,NSUInteger idx, BOOL *stop) {
[pathstroke];
}];
}
- Quartz2D之贝塞尔涂鸦板(UIBezierPath)
- iOS开发-------涂鸦板(UIBezierPath 贝赛尔曲线)与 MVC初尝试
- iOS开发之涂鸦板
- Android 之简易涂鸦板
- 手把手教你使用Quartz2D制作彩色涂鸦板和手势解锁
- 画板涂鸦和时钟(Quartz2D,核心动画)
- Qt学习之——涂鸦板
- ios-day17-03(使用UIBezierPath实现“涂鸦”小程序)
- 涂鸦板
- 涂鸦板
- Quartz2D - 04.利用贝瑟尔路径(UIBezierPath)绘制基本图形
- iOS 之UIBezierPath
- UIView绘图之UIBezierPath
- iOS绘画之UIBezierPath
- 画图-之涂鸦
- 涂鸦之贝赛尔
- IOS学习之Quartz2D
- iOS 之Quartz2D简介
- 数组中超过出现次数一半的数字 【微软面试100题 第七十四题】
- netty学习网站
- Delphi XE7实现的任意位置弹出菜单
- boa cgi实现ajax
- Android笔记008_关于数据库的前滚和回滚的区别
- Quartz2D之贝塞尔涂鸦板(UIBezierPath)
- (软工视频总结三)数据流程图
- MongoDB学习笔记
- Microsoft Visual Studio 2010(VS2010)正式版 CDKEY
- 克鲁斯卡尔算法+快速排序算法(最小生成树 2)
- 第七章 指针与引用
- 扩展分区和分区表
- FATAL ERROR in native method: JDWP No transports initialized
- 记录1--s3c2440 GPIO && UART的控制