Начало касания в виде таблицы

#iphone #objective-c

#iPhone #objective-c

Вопрос:

Я использую touchesBegan:withEvent: для получения касаний пользователя на экране, но когда я касаюсь ячейки в TableView, этот метод не получает тег, который я даю представлению. и x и y находятся в ячейке, а не на всем экране.

 -(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{

    UITouch *touch = [[touches allObjects] objectAtIndex:0];
    CGPoint finger = [touch locationInView:self];
    int x = finger.x;
    int y = finger.y;

}
  

Это touchesBegan:withEvent: метод. есть какой-нибудь способ это исправить?

Ответ №1:

Вы должны использовать этот метод :

 - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
  

Это метод делегирования, поэтому не забудьте подключить свой делегат и источник данных в Interface Builder .

Документация Apple — UITableViewDelegate

Комментарии:

1. Я хочу получить x и y, к которым были прикоснуты на экране, и я могу получить их, когда я использовал этот метод

2. Хорошо … итак, вам нужно использовать метод convertPoint, например:[self convertPoint: просмотр пальцем:[UIScreen MainScreen]];

3. я не могу использовать, потому что он возвращает uiscreen, а не UIView: [Главный экран UIScreen]

4. Да, извините, это должно быть: [self convertPoint: finger toWindow: nil]; Согласно документу, nil по умолчанию является экраном. developer.apple.com/library/ios/#documentation/uikit/reference /…