перетаскивание iPhone - PullRequest
       13

перетаскивание iPhone

16 голосов
/ 11 июня 2009

Попытка получить базовую функциональность перетаскивания для приложения 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 Ответ

21 голосов
/ 11 июня 2009

Необходимо указать свойство center в системе координат суперпредставления, но вы запросили событие касания для местоположения в терминах вашего подпредставления. Вместо этого спросите их, основываясь на координатах суперпредставления, например:

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    UITouch *touch = [touches anyObject];   
    CGPoint location = [touch locationInView:self.superview]; // <--- note self.superview

    self.center = location;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...