Pergunta

Eu preciso girar em imagem várias vezes em 90 graus Eu estou usando seguinte código,

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

aqui moldar ser meu UIImageView.

O problema é que toda vez que eu clicar no botão de rotação gira-lo de sua posição original, que não é o que eu quero. Eu seria a rodar a partir da nova posição.

Eu sou novo em programação iphone, desculpas se eu estou faltando algo muito básico e agradece antecipadamente para você ajuda.

Kedar

Foi útil?

Solução

Se você está tentando animar esta rotação, você pode querer ler o minha resposta para este pergunta, onde alguém estava tentando animar uma rotação incremental de um ponto de vista. Acontece que a animação incremental de uma transformação utilizando CABasicAnimations é um pouco mais complicado do que você esperaria. Você primeiro precisa ler a transformação atual de sua camada de UIView de sua camada de apresentação, em seguida, alimentá que em sua animação como o fromValue.

No entanto, no seu caso parece que você está usando um bloco de animação UIView para animar a propriedade transform do seu ponto de vista. O código que você tenha escrito seria apenas manter a definição de seus vista de transformar à mesma rotação de 90 graus, não seria incrementalmente girar a vista em 90 etapas graus. Para fazer uma rotação incremental, eu acredito que você precisa de algo como o seguinte:

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

que vai agarrar a transformação atual do ponto de vista, girá-lo em 90 graus, em seguida, aplicar a resultante transformação para a vista. Novamente, isso pode se deparar com as mesmas questões que com as CABasicAnimations, caso em que você deve consultar a resposta acima ligado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top