2011-02-12 3 views
0

Мне нужна помощь. Как повернуть UIImageView нажатием на экран?Поворот UIImageView с помощью TapGesture

- (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

исправить мой код и работа в порядке

 
-(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); 

} 
Смежные вопросы