我有一個UIView子類,當用戶觸摸它們,使用下面的重寫的方法搬來搬去「事件的:爲什麼CALayer的移動速度比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 ..
阿中使用,這是definetely它;在圖層'位置'的'actions'字典中添加一個'[NSNull null]'使得圖層的移動延遲迴到了'UIView'的水平,然後一些..謝謝! –