2009-12-13 36 views

risposta

24

Per espandere su ciò che Pietro ha detto, si desidera utilizzare il codice simile al seguente:

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

Il CGAffineTransformMake ... funzioni di creare nuove trasforma da zero, dove gli altri concatenano trasforma. A viste e livelli è possibile applicare una sola trasformazione alla volta, quindi è possibile creare contemporaneamente più effetti di ridimensionamento, rotazione e traslazione su una vista.

È necessario prestare attenzione all'ordine in cui le trasformazioni sono concatenate per ottenere l'effetto corretto.

2

Solo uno di questi lavori alla volta.

Giusto, perché hai sostituito il primo con il secondo.

Come posso salvare una trasformazione e quindi applicarne un'altra?

Concatenate them together, e assegnare la matrice risultante alla proprietà.

È possibile memorizzare una matrice di trasformazione in una variabile di tipo CGAffineTransform; puoi usarlo per passaggi intermedi in trasformazioni più complesse o per rendere il codice più chiaro (o entrambi).

9

dal disco della documentazione di Apple:

CGAffineTransformConcat restituisce una matrice affine trasformazione costruito combinando due esistenti trasformazioni affini.

CGAffineTransform CGAffineTransformConcat (
    CGAffineTransform t1, 
    CGAffineTransform t2 
); 

Parametri T1 La prima affine trasformazione.

t2 La seconda trasformazione affine. Questa trasformazione affine è concatenata a la prima trasformazione affine.

Valore restituito Una nuova matrice di trasformazione affini . Cioè, t '= t1 * t2.

Discussione La concatenazione combina due matrici di trasformazione affine per moltiplicandole insieme. È possibile che esegua diverse concatenazioni in ordine per creare una trasformazione singola affine che contenga gli effetti cumulativi di diverse trasformazioni.

noti che operazioni di matrice non sono commutativa indica l'ordine in cui le matrici concatenare è importante. Cioè, il risultato della moltiplicazione della matrice t1 per matrice t2 non è necessariamente uguale al risultato di matrice moltiplicatrice t2 per matrice t1.

+0

Grazie a tutti. Ho appena preso il aout CGAFfineTransform del e funziona benissimo! – quantumpotato

Problemi correlati