Domanda

Devo ruotare l'immagine più volte di 90 gradi. Sto usando il seguente codice,

CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;

qui forma il mio UIImageview.

Il problema è ogni volta che faccio clic sul pulsante di rotazione, lo ruota dalla sua posizione originale, che non è quello che voglio. Vorrei che ruotasse dalla nuova posizione.

Sono un nuovo programmatore di iPhone, mi scuso se mi manca qualcosa di molto semplice e grazie in anticipo per l'aiuto.

Kedar

È stato utile?

Soluzione

Se stai cercando di animare questa rotazione, potresti voler leggere la mia risposta a questa domanda , in cui qualcuno stava tentando di animare una rotazione incrementale di una vista. Si scopre che l'animazione incrementale di una trasformazione usando CABasicAnimations è un po 'più complicata di quanto ti aspetteresti. Devi prima leggere l'attuale trasformazione del livello di UIView dal suo strato di presentazione, quindi inserirla nell'animazione come fromValue.

Tuttavia, nel tuo caso sembra che tu stia usando un blocco di animazione UIView per animare la proprietà di trasformazione della tua vista. Il codice che hai scritto continuerebbe a impostare la trasformazione della vista solo sulla stessa rotazione di 90 gradi, non ruoterebbe la vista in modo incrementale di 90 gradi. Per fare una rotazione incrementale, credo che avresti bisogno di qualcosa di simile al seguente:

CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;

che afferrerà la trasformazione corrente della vista, la ruoterà di 90 gradi e quindi applicherà la trasformazione risultante alla vista. Ancora una volta, questo potrebbe incorrere negli stessi problemi di CABasicAnimations, nel qual caso dovresti consultare la risposta sopra collegata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top