De forma predeterminada, un UIImageView girará solo alrededor de su centro. ¿Cómo puedo rotar sobre cualquier otro punto en la imagen?¿Cómo puedo rotar un UIImageView con respecto a cualquier punto (que no sea su centro)?
Respuesta
Una forma de hacerlo es cambiando el punto de anclaje de la capa subyacente de UIImageView y girando sobre eso. Puede cambiar el punto de giro con algo como lo siguiente:
imageView.layer.anchorPoint = CGPointMake(0.25, 0.25);
Anchorpoint se define en términos de coordenadas relativas dentro de la capa. Es decir, (0,0) es la esquina superior izquierda de la capa (en el iPhone, donde las capas UIView han cambiado coordenadas Y) y (1,1) es la esquina inferior derecha.
Mover el ancla puede hacer que su imagen se mueva, por lo que es posible que tenga que ajustar su posición posteriormente.
Para girar la capa de la imagen de ese nuevo punto de anclaje, se puede cambiar la estructura CATransform3D para la capa de usar algo como lo siguiente:
CATransform3D rotatedTransform = imageView.layer.transform;
rotatedTransform = CATransform3DRotate(rotatedTransform, 60.0 * M_PI/180.0, 0.0f, 0.0f, 1.0f);
imageView.layer.transform = rotatedTransform;
En este ejemplo se hace una rotación incremental de los 60 grados alrededor del punto de anclaje .
Todos los cambios en una capa están animados de forma predeterminada. Puede desactivar esta animación encerrando los cambios en estas propiedades en un CATransaction como la siguiente:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
// Code for changes here
[CATransaction commit];
- 1. rotación CSS con respecto a un punto de referencia
- 2. ¿Cómo puedo hacer que UIImageView cambie su imagen mediante programación?
- 3. cómo rotar alrededor de un punto especificado en fabric.js?
- 4. ¿Cómo rotar un vértice alrededor de un cierto punto?
- 5. ¿Cómo puedo enviar cualquier cosa que no sea cadenas a través de Python? Sock.send()
- 6. cómo rotar CALayer en un punto
- 7. ¿Cómo centro un UIImageView dentro de una pantalla completa UIScrollView?
- 8. ¿Cómo puedo agregar programáticamente un UIImage a un UIImageView y agregar ese UIImageView a otro UIView?
- 9. ¿Cómo puedo voltear un UIImageView?
- 10. Rotar punto en el rectángulo
- 11. ¿Cómo rotar un UIImageView con CATransform3DRotate hace un efecto como la apertura de la puerta?
- 12. ¿Cómo puedo hacer que la página php devuelva un error 503 (o cualquier cosa que no sea 200)
- 13. ¿Cómo rotar el objeto alrededor de un punto usando cuaterniones?
- 14. Gire el rectángulo alrededor de su centro
- 15. regex para que coincida con un solo carácter que sea cualquier cosa excepto un espacio
- 16. ¿Cómo puedo girar un UIImageView en 20 grados?
- 17. Raphael.js ¿Cómo obtener la ubicación del punto central del papel y la escala con respecto al centro?
- 18. ¿Cómo rotar UIView, UIImageView o CALayer animated 360˚?
- 19. Ordenar un diccionario en su lugar con respecto a las claves
- 20. ¿Cómo puedo decirle a un ContextMenu que se coloque con relación a su control y no al cursor?
- 21. En haskell, ¿cómo puedo mayúsculo un carácter Unicode con respecto a la configuración regional actual
- 22. Regex para que coincida con cualquier carácter que no sea palabra, pero menos
- 23. Gire un punto alrededor de un punto con OpenCV
- 24. Cómo rotar un lienzo en un punto específico usando android.graphics.Camera.rotateX (ángulo)
- 25. en C# ¿cómo rotar picturebox con su imagen?
- 26. rotar cammera alrededor del centro del objeto wpf
- 27. .Net Regex que combina cadenas con cualquier carácter que no sea ASCII
- 28. ¿Puedo hacer que un TTreeNode sea invisible?
- 29. ¿Puedo hacer que un elemento ListView no sea seleccionable?
- 30. Android, ¿Cómo puedo rotar una flecha (imagen) alrededor de un punto fijo?
Simplemente añadiendo algunas notas aquí para mis seres futuros: 'import import 'y también necesita importar el marco' QuartzCore'. Gracias. –
pero esto mueve la imagen como dices. ¿Es posible simplemente mover el punto de anclaje? – hfossli
@Fossli - No, la posición de una capa está vinculada a su punto de anclaje. Sin embargo, es relativamente fácil averiguar cuál debe ser la nueva posición de la capa, y cambiar tanto el punto de anclaje como la posición de la capa en una transacción no animada. –