Как нарисовать заполненную фигуру из массива точек и получить метки внутри этой фигуры? - PullRequest
2 голосов
/ 12 августа 2011

В моем приложении у меня есть массив точек, которые были добавлены пользователем, и я хочу иметь возможность создать заполненную форму из этих точек.

Я также хочу иметь возможность получать любые нажатиявнутри фигуры (не прямоугольная рамка фигуры, а сама форма).Кроме того, если метка находится не внутри фигуры (но, возможно, все еще находится внутри рамки фигуры), я хочу, чтобы метка была «передана» вниз фигуре, если таковая имеется.я пытаюсь создать UIButton неправильной формы из массива точек.

1 Ответ

5 голосов
/ 12 августа 2011
  1. Создать подкласс UIView.
  2. В нем создайте свойство UIBezierPath из массива точек (moveToPoint: и addLineToPoint:).
  3. В drawRect: используйте путь Безье для рисования фигуры (вызовите fill или stroke или оба).
  4. Для проверки попадания переопределить pointInside:withEvent: и вернуть правильное значение на основе возвращаемого значения -[UIBezierPath containsPoint:].

Убедитесь в правильности преобразования между системами координат вида и траектории, если они отличаются друг от друга.

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