2010-09-28 2 views
1
- (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]; 

}

Я попробовал этот one.It отлично работает в одно время слева right.But мне нужно, чтобы переместить изображение слева и справа слева.Перемещение изображения слева направо и справа налево в Iphone

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

ответ

0

Вы не создаете 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:];

1
[UIView animateWithDuration:timeDuration 
          delay:0.0f 
         options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse | UIViewAnimationCurveLinear 
        animations:^{ 
         [iVBackgroundImg setFrame:YOUR_FRAME]; 
        } 
        completion:nil]; 
    [UIView commitAnimations]; 
Смежные вопросы