CAShapeLayer用户交互缓慢
我有一个CAShapeLayer,它必须做一个简单的任务,在用户的手指指导下移动屏幕。
问题是运动太慢了。该层确实移动,但有一个滞后,感觉很慢。
我有另一个测试应用程序,其中移动UIImage并且没有任何延迟,图像立即移动。
我该怎么做才能克服这个问题?
- (void)touchesBegan:(NSSet *)触及withEvent:(UIEvent *)事件
{
currentPoint = [[touches anyObject] locationInView:self];
}
- (void)touchesMoved:(NSSet *)触及withEvent:(UIEvent *)事件
{
CGPoint activePoint = [[touches anyObject] locationInView:self];
CGPoint newPoint = CGPointMake(activePoint.x - currentPoint.x,activePoint.y - currentPoint.y);
curLayer.position = CGPointMake(shapeLayer.position.x + newPoint.x,shapeLayer.position.y + newPoint.y);
currentPoint = activePoint;
}
谢谢!
没有找到相关结果
已邀请:
2 个回复
河饶办斜施
这应该使它跳转到新位置而不是动画。如果这没有帮助,那么让我看一下你的图层初始化代码,这样我就可以看到它有哪些属性和尺寸。例如,cornerRadius等属性可能会影响性能。
豹芜澈
上将
设置为
,特别是如果它通常以相同的比例绘制。如果您的应用在高DPI设备上运行,您可能还需要设置
以匹配图层的
。 虽然栅格化您的形状可以更快地移动形状,但您可能希望在为图层的路径或大小设置动画时暂时禁用光栅化。