Перетаскивание iPhone
Попытка получить базовые функции перетаскивания для приложения iPhone.
Мой текущий код для этого заключается в следующем:
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self];
self.center = location;
}
Этот код имеет результат мигания UIView, когда он следит за касанием. Немного поиграв с этим, я также заметил, что UIView, казалось, мерцал от позиции 0,0 на экране до текущего касающегося местоположения.
Любые идеи, что я делаю неправильно?
Ответы
Ответ 1
Свойство центра должно быть указано в системе координат супервизора, но вы запросили событие касания для местоположения с точки зрения вашего подсмотра. Вместо этого попросите их на основе координат супервизора, например:
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.superview]; // <--- note self.superview
self.center = location;
}