((UIImageView*)[dsry objectAtIndex:0]).transform = CGAffineTransformMakeRotation(1.57*2);
((UIImageView*)[dsry objectAtIndex:0]).transform = CGAffineTransformMakeScale(.5,.5);

Sólo uno de estos trabajos en un tiempo. ¿Cómo puedo guardar una transformación y, a continuación, aplicar otra?
Saludos

3 Comentarios

  1. 24

    Para ampliar lo que Pedro dijo, puede que desee utilizar un código como el siguiente:

    CGAffineTransform newTransform;
    newTransform = CGAffineTransformMakeRotation(1.57*2);
    ((UIImageView*)[dsry objectAtIndex:0]).transform = CGAffineTransformScale(newTransform,.5,.5);

    La CGAffineTransformMake… funciones de crear nuevos transforma a partir de cero, donde los demás concatenar transforma. Vistas y capas sólo puede tener una transformación aplicada en un tiempo, así que esta es la forma de crear múltiples de escala, rotación y traslación de los efectos en una vista a la vez.

    Usted necesita tener cuidado con el orden en que se transforma se concatenan con el fin de lograr el efecto deseado.

  2. 9

    De la Documentación de Apple:

    CGAffineTransformConcat Devuelve un
    matriz de transformación afín
    construido mediante la combinación de dos de los existentes
    afín transforma.

    CGAffineTransform CGAffineTransformConcat (
       CGAffineTransform t1,
       CGAffineTransform t2
    );

    Parámetros t1 El primer afín
    transformar.

    t2 La segunda transformación afín. Este
    transformación afín se concatena
    la primera transformación afín.

    El Valor de retorno de Una nueva afín
    matriz de transformación. Es decir, t’ =
    t1*t2.

    Discusión Concatenación combina dos
    transformación afín de las matrices
    la multiplicación de ellos juntos. Usted puede
    realizar varias concatenaciones en
    el fin de crear una sola afín
    transformación que contiene el acumulado de
    efectos de varias transformaciones.

    Tenga en cuenta que la matriz de operaciones no
    conmutativa: el orden en que se
    concatenar matrices es importante.
    Es decir, el resultado de multiplicar
    matriz t1 por la matriz t2 no
    necesariamente igual al resultado de
    la multiplicación de la matriz t2 por la matriz t1.

    • Gracias a todos. Sólo tomé aout la CGAFfineTransform y funciona genial!
  3. 2

    Sólo uno de estos trabajos en un tiempo.

    Derecho, porque ha reemplazado el primero con el segundo.

    ¿Cómo puedo guardar una transformación y, a continuación, aplicar otra?

    Concatenar juntos, y asignar la matriz resultante en la propiedad.

    Puede almacenar una matriz de transformación en una variable de tipo CGAffineTransform; usted puede utilizar que de pasos intermedios en el más complejo de transformaciones, o para hacer el código más claro (o ambos).

Dejar respuesta

Please enter your comment!
Please enter your name here