2011-07-16 17 views
5

W moim projekcie wykonuję następujące czynności na UIImageView 1.) obróć to 2.) przenieś je 3.) powiększ to. Mój projekt ma również przycisk o nazwie "Nowy", który zresetuje wszystkie ustawienia app.my problem polega na tym, że jeśli mam obrócić obraz i kliknij na nowy przycisk, ustawienie UIImageVIew nie zmienia się. Czy ktoś może mieć jakiś pomysł. Dzięki z góryJak zresetować właściwość transformacji UIImageView

-(void)rotate:(id)sender { 

    if([(UIRotationGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) { 

     lastRotation = 0.0; 
     return; 
    } 

    CGFloat rotation = 0.0 - (lastRotation - [(UIRotationGestureRecognizer*)sender rotation]); 

    CGAffineTransform oldTransform = [(UIPinchGestureRecognizer*)sender view].transform; 
    CGAffineTransform newTransform = CGAffineTransformRotate(oldTransform,rotation); 

    [[(UIRotationGestureRecognizer*)sender view] setTransform:newTransform]; 

    lastRotation = [(UIRotationGestureRecognizer*)sender rotation]; 
} 

powyżej kodu używam do obrotu.

+0

resetowania w poczucie ? Obraz zostanie obrócony z powrotem do pozycji orinigalnej w prawo? – booleanBoy

+0

Proszę zaksięgować niektóre z ur code ..... Możemy pomóc u następnie – booleanBoy

+0

@iphoneFreak dzięki za odpowiedź. Tak to jest. – Rahul

Odpowiedz

12

Jeśli imageView to obiekt UIImageView, resetowanie własnością transform odbywa się za pomocą,

imageView.transform = CGAffineTransformIdentity; 

Dodatkowo, możesz skrócić metoda rotate: trochę jeśli nie używasz lastRotation nigdzie indziej.

-(void)rotate:(UIRotationGestureRecognizer *)gesture { 
    UIView * view = gesture.view; 
    view.transform = CGAffineTransformRotate(view.transform, gesture.rotation); 
    gesture.rotation = 0; 
} 
+2

w swift 3, zostało zmienione na imageView.transform = CGAffineTransform.identity; –

0

Dla innego praktycznego Swift przykład dla tych, którzy są zainteresowani, byłem w stanie zbudować off przykład Deepak dla obracania obrazu, a następnie odwrócenie obrót za pomocą rozszerzenia dla UIImageView

extension UIImageView { 

    func rotateCounterClockwise() { 
     UIView.animateWithDuration(0.3, animations: { 
      self.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI)) 
    }) 
} 

    func rotateToOriginal() { 
     UIView.animateWithDuration(0.3, animations: { 
      self.transform = CGAffineTransformIdentity 
    }) 
} 

}