CALayer система координат - PullRequest
0 голосов
/ 04 июня 2009

Я довольно новичок в Какао, но хотел бы знать, как изменить систему координат CALayer. Я прочитал статью Геометрия слоя и преобразования из Руководства по программированию базовой анимации, но мне все еще нужны некоторые практические советы.

Система координат по умолчанию имеет (0,0) в левом нижнем углу. Я хотел бы изменить это к центру слоя. Это возможно?

Что я пробовал: используя CATransform3DTranslate в качестве подслояTransform в MidX и MidY кадра слоя, подслои отображаются в нужном месте. В случае события setFrameSize перевод должен быть затем пересчитан и применен снова. Я бы предпочел автоматическое обновление (без «шагов»).

Или я должен использовать kCAConstraintMidX, чтобы связать подуровень MidX со слоем MidX и использовать смещение? Фактически, я использую CATextLayers в качестве подслоев и хочу выровнять текст по центру, таким образом расположив центр текста относительно центра суперслоя. Я попробовал это, но, кажется, он не обновляется автоматически, когда я изменяю размер супер слоя.

1 Ответ

1 голос
/ 09 июня 2009

Проверьте пример кода Apple под названием oalTouch, который делает это.

// Convert the view point to our layer / sound stage coordinate system, which is centered at (0,0)
CGPoint pointInLayer = CGPointMake(pointInView.x - [self frame].size.width / 2., pointInView.y - [self frame].size.height / 2.);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...