#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 .
Комментарии:
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 /…