在iOS中使用手指简单画线
来源:互联网 发布:java都能做什么 编辑:程序博客网 时间:2024/04/30 07:45
http://blog.csdn.net/jasonblog/article/details/8024014
这个画线功能主要是为了辅助在iOS中支持手势锁屏的功能,哪位知道有现成的GestureLock项目的,求分享。
- @interface ViewController ()
- @property (nonatomic, strong) UIImageView *imageView;
- @property (nonatomic, assign) CGPoint lineStartPoint;
- @property (nonatomic, assign) CGPoint lineEndPoint;
- @end
要画线,需要有画板imageView,还有线的起始点、终点。
通过Cocoa Touch支持的交互特性,我们可以跟踪用户手指点击和移动:
- #pragma mark - Trace Touch Point
- - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- {
- CGPoint touchPoint;
- UITouch *touch = [touches anyObject];
- if (touch) {
- touchPoint = [touch locationInView:self.imageView];
- NSLog(@"touchesBegan : %f, %f\n", touchPoint.x, touchPoint.y);
- self.lineStartPoint = touchPoint;
- }
- }
- - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- {
- CGPoint touchPoint;
- UITouch *touch = [touches anyObject];
- if (touch) {
- touchPoint = [touch locationInView:self.imageView];
- NSLog(@"touchesMoved : %f, %f\n", touchPoint.x, touchPoint.y);
- self.lineEndPoint = touchPoint;
- self.imageView.image = [self drawLineWithColor:[UIColor yellowColor] width:10.0f startPoint:self.lineStartPoint endPoint:self.lineEndPoint];
- }
- }
- - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
- {
- ;
- }
最后就是基础的画线功能:
- #pragma mark - Draw Line
- - (UIImage *)drawLineWithColor:(UIColor *)color width:(CGFloat)width startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint
- {
- UIImage *image = nil;
- UIGraphicsBeginImageContext(self.imageView.frame.size);
- CGContextRef context = UIGraphicsGetCurrentContext();
- CGContextSetLineWidth(context, width);
- CGContextSetStrokeColorWithColor(context, [color CGColor]);
- CGContextMoveToPoint(context, startPoint.x, startPoint.y);
- CGContextAddLineToPoint(context, endPoint.x, endPoint.y);
- CGContextStrokePath(context);
- image = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- return image;
- }
这样,就可以根据手指移动来绘制线条了。
这个功能可以做一些趣味App,或者我的目的:手势锁屏和解锁。
如下是简单效果图:
0 0
- 在iOS中使用手指简单画线
- 在iOS中使用手指简单画线
- 在iOS中使用手指简单画线
- 在iOS中使用手指简单画线
- 在iOS中使用手指简单画线
- Vuforia在Unity中屏幕坐标转世界坐标,并使用lineRender画线,手指画线,选中物体并拖拽
- iOS 使用UIBezierPath画线
- cocos2d-iphone 手指画线
- 在网页中画线
- 在CView中画线
- iOS——在tableViewCell中画线虚线
- 【IOS功能实现】简单画线
- Unity中使用GL在Camera上画线
- qt中简单的画线
- 如何在silverlight中画线?
- iOS-实现最简单的画线功能
- IOS简单的画线功能实现
- 【iOS开发-画线】使用贝塞尔曲线(UIBezierPath)画线
- 【一步一步学NPOI】2.设置单元格格式
- 杭电ACM1995(递推)
- 博客地址
- 有关内存的思考题
- Mach-O文件格式和程序从加载到执行过程
- 在iOS中使用手指简单画线
- PyLucene安装与初试
- 白开水-2015年年终总结
- .net 4.5 async await 简单用法
- Android开发学习之路--Activity之生命周期
- highchart 时间轴 固定起始和结束值
- GDB查看cpu占用100%
- MySql中in和exists效率
- 排序二之冒泡排序