Использовать CGAAffineTransform для поворота символа посередине?

#iphone #objective-c

#iPhone #objective-c

Вопрос:

Я хочу повернуть , чтобы он стал x, но он не вращается через центр символа . Как я могу заставить его вращаться через эту точку?

Комментарии:

1. Куда вы подаете заявку на преобразование? (view/layer/CGContext / …?)

2. Я применяю его к UILabel.

Ответ №1:

Как вы предлагаете, просто поверните метку 🙂

 CGAffineTransform rotare = CGAffineTransformMakeRotation(45*M_PI/180.0f);
[plusLabel setTransform:rotare];
  

Если метка не вращается вокруг центра , включите QuartzCore и поверните слой [plusLabel]

 CATransform3D rotate3D = CATransform3DMakeRotation(45*M_PI/180.0f, 0, 0, 1);
[[plusLabel layer] setAnchorPoint:CGPointMake(0.4, 0.6)]; // The center of Plus in my case
[[plusLabel layer] setTransform:rotate3D];
  

Комментарии:

1. Это код, который у меня более или менее уже был. Проблема в том, что он не вращается вокруг середины символа , он смещен от центра.

2. Для меня это все еще не в центре внимания, но я могу это исправить, повозившись с цифрами. Проблема в том, что это внутри анимации UIView, поэтому она прыгает перед вращением.

3. Определите центр Плюса в вашем слое и установите точку привязки, как я описал. Это должно сработать. Помните, что точка привязки — это точка между (0, 0) верхним левым углом и (1, 1) правой кнопкой