Переместить изображение слева направо и справа налево в iphone - PullRequest
1 голос
/ 28 сентября 2010
- (void)moveImage:(UIImageView *)image duration:(NSTimeInterval)duration
            curve:(int)curve x:(CGFloat)x y:(CGFloat)y
{
    // Setup the animation
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:duration];
    [UIView setAnimationCurve:curve];
    [UIView setAnimationBeginsFromCurrentState:YES];

    // The transform matrix
    CGAffineTransform transform = CGAffineTransformMakeTranslation(x, y);
    image.transform = transform;

    // Commit the changes
    [UIView commitAnimations];
}
- (void)viewDidLoad {
    [super viewDidLoad];    
    UIImageView *imageToMove = 
    [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon.png"]];
    imageToMove.frame = CGRectMake(10, 10, 20, 20);
    [self.view addSubview:imageToMove];

    // Move the image
    [self moveImage:imageToMove duration:3.0 
              curve:UIViewAnimationCurveLinear x:50.0 y:50.0];  

}

Я попробовал этот. Он отлично работает один раз слева направо. Но мне нужно несколько раз перемещать изображение слева направо.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 декабря 2012
[UIView animateWithDuration:timeDuration
                          delay:0.0f
                        options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse | UIViewAnimationCurveLinear
                     animations:^{
                         [iVBackgroundImg setFrame:YOUR_FRAME];
                     }
                     completion:nil];
    [UIView commitAnimations];
0 голосов
/ 28 сентября 2010

y Вы не создаете NSTimer, который неоднократно вызывает функцию каждые 5 секунд (где 5 - время, необходимое для перемещения слева направо), а затем эта функция проверяет.

if(image.origin.x< 0 )
     //move image to right
 else if(image.origin.x > 320)
     // move image to left.

Либо пользователь NSTimer, либо в вашей функции перемещения вызовите [self performSelector:];

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