ios - 在应用程序中实现绘图的最有效方法是什么?

标签 ios cocoa-touch uiimageview core-graphics

我想在我的 PDF 阅读器应用程序中实现自由绘图。我看到一个使用 UIImageView 作为渲染绘图的 View 的教程。我尝试了这个并且效果很好,除非我尝试保存绘图。有时它会阻止我从一页转到另一页,除非我点击边缘两次,其他时候过渡很平滑。

那么实现此功能的最佳方式是什么?

--附加信息--

要保存绘图,我所做的是使用 UIImagePNGRepresentation 将其保存为图像以将其保存在目录中。保存图片的文件名是根据文档的bookId和页码(例如121-5.png)

现在要加载绘图,将调用一个函数,该函数根据书籍的 ID 和页码检查图像是否存在。因此,如果这本书的 ID 为 121,而我在第 5 页,则该函数将加载图像“121-5.png”。

最佳答案

这只是一个猜测(现在我要展开更多内容已经太晚了),但是如果您尝试以最明显的方式进行保存部分,可能您正在拖延主要 (UI)线。可能你不是,很抱歉,如果它放肆。如果是这样,这将导致整个界面停止,直到图像被渲染、压缩和保存。

两个简单的方法来解决这个问题:

  • 启动一个后台线程来执行此操作,这将释放您的主线程以响应用户。 (搜索 NSOperation 是一个开始。这是一个 random tutorial )
  • 将要保存的 UILayer 传递到“下一页”,并在转换后进行保存。它仍然会稍微拖延一些事情,但至少用户会考虑下一步该做什么,而您将有 100 毫秒的时间来做某事。

关于ios - 在应用程序中实现绘图的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920256/

相关文章:

ios - 如何在 UITextView 中为文本着色

iphone - MKPinAnnotationView 图像偏移?

ios - 从应用程序内发送电子邮件中的图像和文本

objective-c - 向 iOS 应用程序添加另一个 UIWindow 的优点、问题、示例?

iphone - 从 UIImageView 获取像素数据——适用于模拟器,不适用于设备

ios - Xcode 8 Swift 3 应用程序能否在 iOS 7 上成功运行?

ios - 带有用户文本+静态标记的 UITextField

ios - Cloud Kit是否允许多个用户编辑同一份数据,并且编辑数据时是否可以修改用户?

ios - [UIImageView centerXAnchor] 的最低 IOS 版本是多少?

ios - 用自定义 View 替换 UIBarButtonItem