Нарисуйте линию пальцем и сделайте UIView следовать за ним - PullRequest
0 голосов
/ 18 сентября 2011

Хорошо, у меня есть вид, и, во-первых, я хочу, чтобы, как только пользователь коснулся вида (в данном случае прямоугольника) и начал перетаскивать вокруг линии, которую следует нарисовать, следуя пути пальца. Позже, когда я вызываю определенный метод, я хочу, чтобы представление следовало за линией и, конечно, линия исчезала.

Моя мысль для рисования линии:

  1. Добавьте UIPanGestureRecognizer к представлению, а затем AddLineToContext, затем нарисуйте его.
  2. Используйте методы touchesBegan и т. Д. Но позже у меня есть несколько видов, и мне нужно выяснить, к какому из них прикоснулся пользователь. (весело, будет от 1 до 15 ...)

И я до сих пор не имею представления о другом.

1 Ответ

1 голос
/ 19 сентября 2011

Чтобы нарисовать путь, вы на правильном пути. Я бы использовал распознаватель жестов из двух имеющихся у вас вариантов.

Чтобы заставить прямоугольник следовать по пути, самый простой метод, о котором я могу подумать, - это сохранить массив x и y для каждой точки, которую вы проходите (не забудьте удалить последовательные дубликаты).

Итак, теперь, когда у вас есть массив точек, описывающих форму пути, вы можете запустить таймер или лучше использовать CADisplayLink, который установит положение прямоугольника для каждой из точек в массиве. Это заставит прямоугольник следовать по пути.

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

Сначала вам нужно вычислить расстояние между положением прямоугольника и точкой, в которой он должен идти дальше, используя: distance formula затем, когда вы знаете расстояние, вы можете использовать arcsine, чтобы определить угол поворота. Затем просто поверните прямоугольник на это значение.

Будьте осторожны при представлении углов (pi против градусов) и в системе координат.

...