2009-06-03 11 views
0

Я новичок в Cocoa, но хотел бы знать, как изменить систему координат CALayer. Я прочитал статью Layer Geometry and Transforms из руководства по программированию основной анимации, но все же вам нужны некоторые практические советы.Система координат CALayer

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

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

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

ответ

2

Проверьте код образца 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.); 
Смежные вопросы