voltear para imagen gratis girar espejo como app iphone core-animation

iphone - para - cómo girar CALayer en un punto



como girar un video en la pc (3)

cómo girar CALayer en un punto seleccionado.


Echa un vistazo a la documentación de CA here .

Desea establecer la transformación en un CATransform3DRotate, por ejemplo:

CATransform3D current = myLayer.transform; myLayer.transform = CATransform3DRotate(current, DEGREES_TO_RADIANS(20), 0, 1.0, 0);


  1. Define tu subcapa que quieres rotar;
  2. Establece sus bounds , position en superlayer y anchorPoint . anchorPoint tiene coordenadas relativas y apunta a un anchorPoint . Tu subcapa girará alrededor de este punto de anchorPoint ;
  3. Añadir transformación.

Por ejemplo, para rotar una subcapa en su punto de vista central superior alrededor del centro inferior de la subcapa, use este código:

// 1 let rect = CGRect(x: 0, y: 0, width: 20, height: 20) let path = UIBezierPath(rect: rect) let sublayer = CAShapeLayer() sublayer.fillColor = UIColor.green.cgColor sublayer.path = path.cgPath superlayer.addSublayer(sublayer) // 2 sublayer.bounds = rect sublayer.position = CGPoint(x: superlayer.bounds.size.width/2, y: 0) sublayer.anchorPoint = CGPoint(x: 0.5, y: 1) // 3 let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z") rotationAnimation.toValue = 2*CGFloat.pi rotationAnimation.duration = 3 rotationAnimation.fillMode = kCAFillModeForwards rotationAnimation.isRemovedOnCompletion = false sublayer.add(rotationAnimation, forKey: nil)


CATransform3D transform = CATransform3DIdentity; transform = CATransform3DTranslate(transform, rotationPoint.x-center.x, rotationPoint.y-center.y, 0.0); transform = CATransform3DRotate(transform, rotationAngle, 0.0, 0.0, -1.0); transform = CATransform3DTranslate(transform, center.x-rotationPoint.x, center.y-rotationPoint.y, 0.0);

Donde el center es el centro de su capa, el rotationAngle está en radianes (el positivo es en sentido contrario a las agujas del reloj), y el punto de rotationPoint es el punto alrededor del cual desea rotar. center y rotationPoint están en el espacio de coordenadas de la vista que contiene.