iOS 上的绘图 View

标签 drawing ios

如何实现一个供用户绘制的 View (特别是签名)?我非常喜欢库或示例代码,而不是自己实现它。

谢谢

最佳答案

绘制曲线只是一系列实心圆或小直线。一种差异化。

  1. 跟踪用户之前和当前的接触点。 (UITouch)
  2. 只需画一条连接各点的线即可。 (或者随便画什么形状,填空即可)

基础知识

有一系列跟踪触摸的方法。

– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:

这些方法在 UIView 上。(方法本身在它的父类(super class) UIResponder 中定义) 覆盖它们。在大多数情况下,跟踪接触点不是问题。

并向 UIView 本身发送 setNeedsDisplay 消息,使它的图形状态无效,以便很快重绘自己。

重写 UIViewdrawRect 方法,用 Quartz (CGContext 绘制你需要的东西(比如黑盘) >).您可以存储跟踪的触摸点来绘制每条线。基本上,您必须重绘所有触摸轨迹。

优化

  • 您可以将绘制的图像缓存为位图(CGImage 可以检索 UIImage)。因此,您只需要绘制新添加的接触点。
  • 您可以通过为位图设置绘图上下文来直接在位图上绘图。并通过 UIImage 显示它。
  • 您可以使用 OpenGL ES 纹理绘制。这是最快的,但也是最难的。并且需要完全不同的方法来提高性能。

更多详细信息和示例引用我提到的方法/类。我附上一个链接: http://developer.apple.com/iphone/library/navigation/index.html#section=Topics&topic=Graphics%20%26amp%3B%20Animation

关于iOS 上的绘图 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640895/

相关文章:

java - 您好,我似乎无法打印使用 DrawingPanel 比较三个圆圈大小的程序的结果

ios - 为 iOS8 和 iOS7 兼容性转换 iOS9 合并触摸绘图代码

ios - 核心数据关系之谜

ios - 去掉 UITableView 上面的行

java - 如何防止绘制的形状在 Java 中消失?

Java - 在主方法和绘图方法之间传递变量时遇到问题

ios - AFNetworking 的 setImageWithURLRequest 在滚动后将图像设置在错误的单元格中(iOS、Swift)

ios - CocoaPod 规范不会与 0.36 一致

iPhone iOS 如何用特定的触发时间初始化 GCD 调度计时器?

c++ - 递归函数上的 OpenMP 并行化