2012-05-10 48 views

回答

0

正如@ Dev的答案中所述,這可以通過動畫完成,但是如果您要製作動畫,則無需更改圖像(如果只想移動它)。

此代碼例如拍攝您選擇的照片並將其從屏幕左上角移動到左下角,並且可以修改爲從右向左移動,並且已經設置爲可以無限重複[UIView setAnimationRepeatCount:-1];

在實現選取框效果中,我可以想到的最好方法是在動畫結束並重置之前使圖像完全變爲非屏幕動畫,從而創建圖像從屏幕一側偏離的錯覺並進入另一個。

- (void)animateImage 
{ 
    UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myImage.png"]]; 
    [self.view addSubview:myImageView]; 
    [myImageView setFrame:CGRectMake(0, 0, 50, 50)]; 

    [UIView beginAnimations:@"myAnimation" context:nil]; 
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationRepeatCount:-1]; 

// [UIView setAnimationDidStopSelector:@selector(callSomeThingElse)]; 

    [myImageView setFrame:CGRectMake(0, 430, 50, 50)]; 
    [UIView commitAnimations]; 
} 
0

這種類型的運動圖像需要動畫。如果你試試這個代碼,您的一點改進就是解決:

UIImageView *animationimage; 

    animationimage.animationImages = [NSMutableArray arrayWithObjects: 

             [UIImage imageNamed:@"Splash1.png"], 
             [UIImage imageNamed:@"Splash2.png"], 
             [UIImage imageNamed:@"Splash3.png"], 
             [UIImage imageNamed:@"Splash4.png"], 
             [UIImage imageNamed:@"Splash5.png"],nil]; 

    // all frames will execute in 1.0 seconds 
    animationimage.animationDuration = 1.0; 
    // repeat the annimation forever 
    animationimage.animationRepeatCount = 0; 

記住一件事,你有不同的連續圖像,需要在我的代碼飛濺%i鏈路。

我希望對你有幫助。

1

我想嘗試這樣的事:

- (void)startAnimatingImages 
{ 
    for (UIImage* aImage in yourImageArray) 
     { 
      [self animateLabelToTheRight:aImage]; 
     } 
} 

- (void)animateLabelToTheRight:(UIView *)yourView 
{ 
    [UIView animateWithDuration:0.3 
        animations:^{ view.frame = CGRectMake(view.frame.origin.x + 35, view.frame.origin.y, image.frame.size.width, image.frame.size.height); } 
        completion:^{ [self animateLabelToTheLeft:yourView] } ]; 
} 

- (void)animateLabelToTheLeft:(UIView *)yourView 
{ 
    [UIView animateWithDuration:0.3 
        animations:^{ yourView.frame = CGRectMake(yourView.frame.origin.x - 35, yourView.frame.origin.y, yourView.frame.size.width, yourView.frame.size.height); } 
        completion:^{ [self animateLabelToTheRight:yourView] } ]; 
} 
+0

需要一些調整,但是這是在意見選取框的最佳解決方案。 例如 - 你不應該移動UIImage,但UIImageViews。動畫持續時間可能會更長(當然移動的距離也會更大)......再加上使用UIViewAnimationOptionCurveLinear作爲動畫選項 – JohnPayne