Как сбросить свойство преобразования UIImageView - PullRequest
5 голосов
/ 16 июля 2011

В моем проекте я делаю следующие действия на UIImageView 1.) поверните его 2.) переместить его 3.) увеличить его. В моем проекте также есть кнопка с именем «New», которая сбрасывает все настройки app.my, проблема в том, что если я поверну изображение и нажму на новую кнопку, настройка 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];
}

код выше, который я использую для вращения.

Ответы [ 2 ]

13 голосов
/ 16 июля 2011

Если imageView является вашим UIImageView объектом, сброс свойства transform выполняется с помощью

imageView.transform = CGAffineTransformIdentity;

Кроме того, вы можете немного сократить метод rotate:, если вы не используете lastRotation где-либо еще.

-(void)rotate:(UIRotationGestureRecognizer *)gesture {
    UIView * view = gesture.view;
    view.transform = CGAffineTransformRotate(view.transform, gesture.rotation);
    gesture.rotation = 0;
}
0 голосов
/ 27 июля 2016

В качестве еще одного практического примера Swift для тех, кому это интересно, я смог создать пример Deepak для поворота изображения, а затем для поворота в обратном направлении с использованием расширения для 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
    })
 }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...