如何实现一个供用户绘制的 View (特别是签名)?我非常喜欢库或示例代码,而不是自己实现它。
谢谢
最佳答案
绘制曲线只是一系列实心圆或小直线。一种差异化。
- 跟踪用户之前和当前的接触点。 (
UITouch
) - 只需画一条连接各点的线即可。 (或者随便画什么形状,填空即可)
基础知识
有一系列跟踪触摸的方法。
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:
这些方法在 UIView
上。(方法本身在它的父类(super class) UIResponder
中定义)
覆盖它们。在大多数情况下,跟踪接触点不是问题。
并向 UIView 本身发送 setNeedsDisplay
消息,使它的图形状态无效,以便很快重绘自己。
重写 UIView
的 drawRect
方法,用 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/