2013-02-27 3 views
0

У меня есть UIImage, когда я нажимаю на него, я хочу, чтобы он перемещал 2px в направлении X и 2px в направлении Y, а затем возвращался в исходное положение. Чтобы его можно было нажимать несколько раз, и просто покачивать.UIImageView отскакивает назад и назад

Что я до сих пор это такое;

imageViewTwo.center = CGPointMake(imageViewTwo.center.x +2, imageViewTwo.center.y +2); 

Это делает изображение перемещающимся 2px в каждом направлении.

Я пробовал это;

imageViewTwo.center = CGPointMake(imageViewTwo.center.x +2, imageViewTwo.center.y +2); 
imageViewTwo.center = CGPointMake(imageViewTwo.center.x -2, imageViewTwo.center.y -2); 

но это только заставило изображение не двигаться вообще. Эти строки находятся в viewDidLoad.

Мне нужно, чтобы он вернулся сразу после того, как он был нажат на исходное положение.

+0

Я предполагаю, что ваш второй код просто выполняется так быстро, что он не отображается на экране. Рассматривали ли вы использование одного из классов, ориентированных на анимацию, для выполнения этого «смеха»? Проверьте этот вопрос, он показывает, как использовать анимацию, разные движения, но вы можете настроить координаты. http://stackoverflow.com/questions/6145337/how-to-create-a-moving-image – Kyle

ответ

4

попробовать использовать анимацию

[UIView animateWithDuration:0.5 
        animations:^ 
    { 
     //move right 
     imageViewTwo.center = CGPointMake(imageViewTwo.center.x +2, imageViewTwo.center.y +2); 
    } 
        completion:^(BOOL completed) 
    { 
     if (completed) 
     { 
      //completed move right..now move left 
      [UIView animateWithDuration:0.5 
           animations:^ 
       { 
        imageViewTwo.center = CGPointMake(imageViewTwo.center.x -2, imageViewTwo.center.y -2); 
       }]; 
     } 
    }]; 
+0

Это сработало отлично, спасибо большое! – GMA

+0

Если это сработало, обязательно проголосуйте и отметьте как правильный ответ. Люди, которые отвечают, проводят свое время, помогая другим. –

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