【发布时间】:2020-09-29 16:34:37
【问题描述】:
我正在开发一个允许多点触控输入的应用程序,但在我的 UIView 中使用 drawRect 进行绘图时遇到了问题。当不止一根手指在屏幕上时,我需要绘制一个包含所有 UITouch 输入的矩形。是否有任何最佳做法,或者有一种方法可以同时绘制多个矩形以避免一次又一次地绘制大部分屏幕?
【问题讨论】:
-
你的标题为什么提到多线程 Core Graphics 绘图?你真的想从多个线程渲染核心图形吗?
-
我知道 coregraphics 渲染不允许多线程,只是试图获得一种有效的方式来同时绘制多个触摸,或者至少是这样的错觉。
-
Core Graphics (CG) 确实允许您从后台线程渲染,如果您小心的话。只是不是一次有多个线程。这是不安全的 UIKit。但是,如果您要尝试编写多线程 CG 代码,您真的必须知道自己在做什么。
-
当您说“绘制一个包含所有 UITouch 输入的矩形”时,您在此处绘制什么?你的意思是一个矩形(比如一个选择矩形)?还是您的意思是您对有界区域进行了一些修改(使其变亮或显示或类似的东西)?或者是其他东西?我怀疑这里的答案真的是“CALayer”,但我不太确定你想画什么。
-
我最终想要的是当我在屏幕上拖动 4 个手指时,每条线同时彼此分开绘制,因此我不必重新绘制一个巨大的框并包含所有四个手指的位置。
标签: swift multithreading core-graphics multi-touch uitouch