Roto / escalo un UIVIew usando [UIView transform:] y esto funciona bien. Sin embargo, tan pronto como cambio el origen del marco de la vista, el contenido de la vista comienza a escalar "extrañamente" a pesar de que no estoy realizando más CGAffineTransforms.
¿Por qué ocurre esto? ¿Cómo puedo prevenirlo?
Actualización 1:
Los documentos sugieren que el marco no es válido después de una transformación. ¿Puedo mover la vista a través de su propiedad "s" center "?
Actualización 2:
Establecer el centro de vistas me permitió traducir la vista con éxito después de aplicar una transformación.
Respuestas
3 para la respuesta № 1¿Puedo mover la vista a través de su propiedad "s" center "?
La documentación define el center
propiedad como:
El centro del marco.
y dice:
El centro se especifica dentro del sistema de coordenadas de su supervista.
Lo intentaría
1 para la respuesta № 2
Desde la UIView documentos:
transformar:
Advertencia: Si esta propiedad no es la transformación de identidad, el valor de la propiedad del marco no está definida y Por lo tanto, debe ser ignorado.
La propiedad del centro es solo un método de conveniencia que realmente restablece el origen del marco.
Editar: adjunto para responder comentario:
Si está utilizando la propiedad de transformación y desea reposicionar su vista, debe concatenar la traducción a su transformación utilizando:
view.transform = CGAffineTransformTranslate(view.transform, tx, tx);