一个简洁的小画板

2017-05-05 11:50:41 +08:00
 Jarvi

效果图

项目地址: https://github.com/lll1024/JVDrawingBoard

说明

这是一个简洁的小画板 可以画双箭头、单箭头、涂鸦等 还可以编辑和撤销。总共包含两个类:

下面是对JVDrawingLayer里边方法的说明:

+ (JVDrawingLayer *)createLayerWithStartPoint:(CGPoint)startPoint type:(JVDrawingType)type;

当手在屏幕上开始移动的时候便会调用这个方法,会根据起始点和传入的枚举值 type 创建不同的形状的 path,目前只有五种形状,分别是单箭头、双箭头、双杠、直线和涂鸦。

- (NSInteger)caculateLocationWithPoint:(CGPoint)point;

当点击屏幕时用这个方法来判断点击位置是否在绘制线条上,如果在则返回具体的位置:JVDrawingTouch枚举值头部、中部和尾部(涂鸦除外)。

- (void)movePathWithStartPoint:(CGPoint)startPoint;
- (void)movePathWithEndPoint:(CGPoint)EndPoint;
- (void)movePathWithPreviousPoint:(CGPoint)previousPoint currentPoint:(CGPoint)currentPoint;

- (void)movePathWithStartPoint:(CGPoint)startPoint isSelected:(BOOL)isSelected;
- (void)movePathWithEndPoint:(CGPoint)EndPoint isSelected:(BOOL)isSelected;
- (void)movePathWithPreviousPoint:(CGPoint)previousPoint
                     currentPoint:(CGPoint)currentPoint
                       isSelected:(BOOL)isSelected;

对于非涂鸦线条来说,编辑可以是平移也可以拖拽头部和尾部,以上 6 个方法分别对应选中和非选中状态下的三种编辑方法。

- (void)moveGrafiitiPathPreviousPoint:(CGPoint)previousPoint currentPoint:(CGPoint)currentPoint;

这是对涂鸦的平移方法,涂鸦只能平移。

- (void)addToTrack;
- (BOOL)revokeUntilHidden;

这是添加轨迹和撤销的方法,当没有操作可供撤销时撤销操作就成了删除方法了。

上面只是简单介绍了这些方法是干什么的,但知道怎么用是不够的,你的需求可能跟我绘制的形状有出入,这样就只能对具体绘制的方法做一些修改或者添加了。我接下来也会对这些 shape 做一些添加和修改,比如在双箭头和双杠中间添加文字,旋转的时候也能跟着转。

以上如有帮助欢迎 star

2561 次点击
所在节点    分享创造
10 条回复
chengfu
2017-05-05 11:55:39 +08:00
支持,iphone 版?
Jarvi
2017-05-05 11:58:25 +08:00
@chengfu 是的,这本身就是 OC 写的嘛
chengfu
2017-05-05 12:05:01 +08:00
得,目测我被降权了~~~
twm
2017-05-05 12:41:23 +08:00
自带的 Notes 很好用
KKKKKK
2017-05-05 13:11:29 +08:00
iPhone 上做这种精准的选中?

触摸屏跟鼠标比?
Jarvi
2017-05-05 14:06:46 +08:00
@KKKKKK 留了 12 个像素的响应区域
thankfish
2017-05-05 14:50:39 +08:00
666666666
话说为啥用 Safari 打开这个页面会崩溃
mo93
2017-05-05 17:39:59 +08:00
请问一下用什么做 GIF 的
Jarvi
2017-05-05 17:47:38 +08:00
@mo93 Gifox
gen900
2017-05-07 10:35:44 +08:00
@thankfish iPhone 也崩了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359299

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX