Поверните UIImageView с TapGesture - PullRequest
0 голосов
/ 12 февраля 2011

Мне нужна помощь. Как повернуть UIImageView, нажав на экран?

    - (void)viewDidLoad {

    UITapGestureRecognizer *tapgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
    [self.view addGestureRecognizer:tapgr];
    [tapgr release];    
    [super viewDidLoad];
}

    -(void)tap:(UITapGestureRecognizer *)gesture {

    CGPoint touch = [gesture locationInView:self.view];
    CGPoint center = myImage.center;
    float dx,dy,wtf;
    dx = touch.x-center.x;
    dy = touch.y-center.y;
    wtf = atan2f(dy, dx);

    [self rotateImage:self.myImage withAngle:wtf];
}



     - (void)rotateImage:(UIImageView *)image withAngle:(float)newAngle
{
image.transform = CGAffineTransformMakeRotation(newAngle);


}

Не поймите - где ошибка?

1 Ответ

1 голос
/ 03 марта 2011

Я исправляю свой код, и он работает нормально

-(void)tap:(UITapGestureRecognizer *)gesture {

    CGPoint p = [gesture locationInView:self.view];

    CGPoint zero;
    zero.x = self.view.bounds.size.width / 2.0;
    zero.y = self.view.bounds.size.height / 2.0;

    CGPoint newPoint;

    newPoint.x = p.x - zero.x;
    newPoint.y = zero.y - p.y;
    CGFloat angle;
    angle = atan2(newPoint.x, newPoint.y);
    self.myImage.transform = CGAffineTransformRotate(CGAffineTransformIdentity, angle);

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