2014-01-08 4 views
3

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

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

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

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

+0

Смотрите ответ [здесь] (http://stackoverflow.com/a/8232192/1161906) – bcattle

ответ

6

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

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

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

shapeLayer.transform = CATransform3DRotate(shapeLayer.transform, recognizer.rotation, 0.0, 0.0, 1.0); 
+0

я использовал это. Но весь CAShapeLayer вращается вокруг центра UIImageView на заднем плане. –

+7

@HiteshBhardwaj в этом случае Я предполагаю, что у слоя с фигурой нет его границ –

Смежные вопросы