Каракули ... Открыть ГЛ? - PullRequest
0 голосов
/ 07 июня 2011

Я создаю приложение, в котором одной из функций является возможность размещать готовые каракули на странице. Они будут иметь возможность увеличивать и уменьшать изображения и размещать их по своему желанию.Это все для iPad.Нужно ли использовать Open GL для этого или есть лучший / более простой способ?(Новое в программировании на iOS)

1 Ответ

1 голос
/ 07 июня 2011

Вы должны быть в состоянии достичь этого, используя CALayer s.Вам нужно будет добавить фреймворк QuartzCore, чтобы это работало.Идея состояла бы в том, чтобы представить каждый рисунок как один CALayer.Если ваши рисунки являются изображениями, вы можете использовать свойство contents, чтобы назначить рисунок слою.Вам нужно будет присвоить объект CGImageRef, который вы можете легко получить, используя свойство CGImage объекта UIImage.

Вам понадобится вид, который будет вашей чертежной доской.Поскольку вы хотите иметь возможность перемещать и изменять размеры рисунков, вам придется прикрепить объект UIPanGestureRecognizer для перемещения слоев и UIPinchGestureRecognizer для увеличения и уменьшения рисунков.Поскольку распознаватели могут быть присоединены только к представлению, а не к слоям, нетривиальная часть, когда вызываются обработчики жестов, будет идентифицировать, каким подуровнем представления они манипулируют.Вы можете получить прикосновения для жестов, используя locationInView: для жеста панорамирования и locationOfTouch:inView: для жеста пинча, с аргументом представления, являющимся видом, в котором выполняется жест, который можно получить с помощью gesture.view.Как только вы определите слой в фокусе, вы можете использовать translationInView: для жеста панорамирования, чтобы переместить слой, и использовать scale свойство жеста пинч, чтобы преобразовать слой.

В то время как CALayer объекты являются легкими объектамиВы можете столкнуться с проблемами, когда их слишком много.Итак, стресс-тест вашего приложения.Другим препятствием является то, что изображения, как правило, занимают много памяти, поэтому вы не сможете получить много рисунков.

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