我有一个 UIView 子类,当用户触摸“事件”时,它会使用以下重写方法来移动它们:
// In a custom UIView...
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint point = [[touches anyObject] locationInView:self];
UIView *eventView = [self.ringOfEvents hitTest:point withEvent:event];
for (EventView *e in self.events) {
if (e == eventView) {
event.position = point;
}
}
}
为什么当我将 EventView
设为 CALayer 而不是 UIView 时,移动速度会变得缓慢?我也可以发布该代码,但它非常相似,我认为没有必要。
我认为抽象到较低级别会加快事件处理速度,但我一定错过了一些东西。
顺便说一句,如果 *eventView
是 UIView
或 CALayer
的子类,则 position
属性如下:
- (void)setPosition:(CGPoint)pos {
self.layer.position = pos;
}
- (CGPoint)position {
return self.layer.position;
}
不知道为什么使用 UIView 而不是 CALayer 时延迟会大幅减少..
最佳答案
关于iphone - 为什么CALayer的移动速度比UIView慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7750862/