objective-c – 在iPhone上用手指画出直线
背景:我正在尝试创建一个非常简单的iPhone应用程序,允许用户用手指在屏幕上绘制多条直线.
我在我的UIViewController中使用这两个方法来捕获每一行的端点的坐标. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 题: 我试过的:我尝试过使用Quartz 2d,但似乎为了使用它,你必须在单独的子类视图的drawRect方法中进行绘图.所以我必须为每一行创建一个新视图?然后我的坐标会搞砸b / c我必须将触摸位置从UIViewController转换到视图. 我也尝试过使用OpenGL,我已经取得了一些成功(使用GLPaint sample作为模板),但OpenGL似乎有点过分,只是在屏幕上绘制一些直线. 解决方法
您不需要多个视图,也不需要OpenGL.
创建UIView的子类 – 将其命名为CanvasView. 使一个对象在画布中表示“一条线” – 它将是NSObject的子类,具有开始和结束的CGPoint属性. CanvasView应该保留画布中的一行数组. 在 – [CanvasView drawRect:]中,循环遍历数组中的行,并绘制每一行. 在 – [CanvasView touchesBegan:withEvent:]中,将起始点存储在实例变量中.在 – [CanvasView touchesEnded:withEvent:]中,使用起点和终点创建一个新行,并将其添加到行数组中.调用[self setNeedsDisplay]以重新绘制视图. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |