повернуть изображение в соответствии с сенсорным в iphone SDK - PullRequest
0 голосов
/ 05 марта 2012

Я хочу плавно поворачивать изображение в зависимости от прикосновения пользователя.Пользователь перемещает касание, поскольку он хочет переместить изображение.Он также перемещает касание по кругу.Как мне это сделать?

Ответы [ 4 ]

3 голосов
/ 05 марта 2012

ЭТО МОЖЕТ ПОМОЧЬ ВАМ ....

 -(IBAction)rotateImage:(id)sender{

                 UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)];
                 [rotationRecognizer setDelegate:self];
                 ["YOUR IMAGEVIEW" addGestureRecognizer:rotationRecognizer];
                 [rotationRecognizer release];  

                                 }

ПОВЕРНУТЬ

  CGFloat lastRotation;
    CGFloat angle;
         -(void)rotate:(UIRotationGestureRecognizer *)sender{

[self.view bringSubviewToFront:[(UIRotationGestureRecognizer*)sender view]];

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

    lastRotation = 0.0;
    return;
}

CGFloat rotation = 0.0 - (lastRotation - [(UIRotationGestureRecognizer*)sender rotation]);
//angle = rotation;
CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)sender view].transform;
CGAffineTransform newTransform = CGAffineTransformRotate(currentTransform,rotation);

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

lastRotation = [(UIRotationGestureRecognizer*)sender rotation];
angle = lastRotation;
      }
1 голос
/ 05 марта 2012

Если вы запрашиваете поворот изображения, используя движение одним пальцем. Это - это то, что вы ищете.

1 голос
/ 05 марта 2012
{
//Add rotate gesture to your imageView

 UIRotationGestureRecognizer *rotateGesture=[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotateGestureAction:)];
[imageView addGestureRecognizer:rotateGesture];
[rotateGesture release];

  [imageView setUserInteractionEnabled:YES];
  [imageView setMultipleTouchEnabled:YES];

}

- (void)rotateGestureAction:(UIRotationGestureRecognizer *)rotate 
 {
    UIImageView *imageView=(UIImageView *)rotate.view;

float prevRotation=0.0;
if (rotate.state == UIGestureRecognizerStateBegan) 
{
    prevRotation = 0.0;
} 
float thisRotate = rotate.rotation - prevRotation;
prevRotation = rotate.rotation;
yourImageView.transform = CGAffineTransformRotate(self.view.transform, thisRotate);
}
0 голосов
/ 05 апреля 2013
-(void)rotateImage:(id)sender 
{
    if([(UIRotationGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) 
    {
    lastRotation = 0.0;
    return;
}

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

CGAffineTransform currentTransform = [(UIRotationGestureRecognizer*)sender view].transform;

CGAffineTransform newTransform = CGAffineTransformRotate(currentTransform,rotation);

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

lastRotation = [(UIRotationGestureRecognizer*)sender rotation];

}

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