У меня есть подкласс 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 ..