- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个使用手指绘制简单图表的应用程序。我让它在大部分情况下都能工作,但现在我正在尝试优化它的性能。当用户快速滑动手指时,我无法捕获足够的触摸事件来绘制平滑的路径。
这是我当前的方法:
1) 我对 UIView 进行了子类化,并向 CGLayer 添加了一个 poroperty(延迟创建,并且与我的 UIView 大小相同)。2)我的 UIView 子类通过将当前和最后一个触摸点存储在实例变量中来响应触摸事件。3)调用我的 View 的 setNeedsDisplay 并在绘制矩形中执行以下操作:- 从上一个触摸位置到当前触摸位置到CGLayer绘制一条线- 一次性将整个 CGLayer 绘制到我的 View 上下文
主要问题是,当用户快速滑动时,我得到的触摸事件相对较少,因此我在触摸之间绘制的线条很长,使路径看起来参差不齐,不平滑。
我的问题:
1)drawRect(在我的 UIView 子类上)和我的 UIView 子类上的触摸事件处理程序是否在同一线程中调用? IE。我是否必须执行线程(一个在触摸事件中,第二个在我的绘图矩形中)?
如果没有 - 调用drawRect时触摸事件是否会排队?我怎样才能提高性能——简单地提高drawRect的性能?
如果是 - 我怎样才能发生更多的触摸事件,以便我可以绘制更平滑的路径?
谢谢。
最佳答案
另一种方法是在样本点之间插入曲线。当手指开始拖动时,开始收集样本点。随着点数的增加,重新绘制线条。用两个点画一条直线,用三个或更多点画一条曲线。当对位于定义距离内的两个点进行采样时,您可以重新启动该过程。这将允许您在一个 Action 中绘制两条弧线(如“m”) - 当您改变方向时,您会自然地在中间暂停,可能足够长以容纳两个或更多样本。
关于iphone - 为 iPhone SDK 优化绘图(用手指触摸)应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1123306/
我用 cocos2d 制作了我的第一个应用程序,所以我在这里很新 我的第一个问题: 我不会让物体(船)跟随我的手指。 -(void) ccTouchMoved:(UITouch *)touch wit
如果某人将右手压在扫描仪的玻璃上进行扫描,结果将如下所示: (没有橙色和白色注释)。我们如何确定某人的 2D:4D ratio从他们的手的图像? 最佳答案 您已经标记了这个很棒的 opencv - 我
我的 View Controller 中有几个 UIScrollView。我想覆盖一个通过 UIPanGestureRecognizer 捕获 2 根手指滑动的 View ,它不会记录 UIScrol
现在这真是令人困惑...在不离开页面的情况下更新 mysql 数据库...我有 3 位代码。 head 标签中的 javascript、body 中的操作按钮以及要在另一个页面上执行的代码。以下是三个
我有这段代码是从 Style clipboard in flutter 得到的 showMenu( context: context, // TODO: Positio
我是一名优秀的程序员,十分优秀!