/ / Restablecer el origen de una UIView transformada desciende a la locura - iphone, uiview, core-graphics

Restablecer el origen de un UIView transformado desciende a la locura - iphone, uiview, core-graphics

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);