Как повернуть CAShapeLayer в его центральной точке

Я сделал CAShapeLayer с несколькими точками, установив красный цвет обводки. Затем я заполнил цвет узором UIImage. Я хочу повернуть этот CAShapeLayer вместе с его заполненным узором, используя UIRotationGestureRecognizer.

Я использовал CATransform3DRotate, но он не работает должным образом.

CATransform3D transform = CATransform3DIdentity;
transform = CATransform3DRotate(transform, recognizer.rotation, 0.0, 0.0, 1.0);
shapeLayer.transform = transform;

заранее спасибо


person Hitesh Bhardwaj    schedule 08.01.2014    source источник
comment
См. ответ здесь   -  person bcattle    schedule 18.09.2014


Ответы (1)


Вы захотите позвонить:

shapeLayer.anchorPoint = (CGPoint){0.5, 0.5};

Вы также начинаете с преобразования идентичности, которое отбрасывает любые преобразования, которые вы делали ранее, например позиционирование слоя. Что вы хотите сделать, это:

shapeLayer.transform = CATransform3DRotate(shapeLayer.transform, recognizer.rotation, 0.0, 0.0, 1.0);
person Wil Shipley    schedule 08.01.2014
comment
Я использовал это. Но весь CAShapeLayer вращается вокруг центра UIImageView на заднем плане. - person Hitesh Bhardwaj; 08.01.2014
comment
@HiteshBhardwaj в этом случае я предполагаю, что для слоя формы не установлены границы - person David Rönnqvist; 08.01.2014