Как я могу обнаружить прикосновение к определенной области - PullRequest
6 голосов
/ 15 марта 2009

В настоящее время я вижу, что событие касания покажет мне UIView, где произошло касание. Но что, если мне нужно обнаружить прикосновение не прямоугольной формы, например, круга. Как бы я поступил так?

По сути, я хочу что-то делать, только если пользователь касается какой-то области в круглой области, которая не видна.

Любая помощь / направление приветствуется, TIA!

1 Ответ

7 голосов
/ 15 марта 2009

Вы бы сделали это так. Обратите внимание, что locationInView будет возвращать координаты касания относительно указанного вида, поэтому касание в верхнем левом углу представления вернет (0,0) независимо от того, где это представление находится на экране.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{   
  UITouch *touch = [touches anyObject];

  // gets the coordinats of the touch with respect to the specified view. 
  CGPoint touchPoint = [touch locationInView:self];

  // test the coordinates however you wish, 
  ...
}

Для проверки сферы необходимо рассчитать расстояние от точки касания до центра сферы, а затем проверить, было ли оно меньше радиуса сферы.

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