2012-01-31 37 views
3

我使用Storyboard在Xcode 4.2中創建新的選項卡式應用程序項目。 在viewDidLoad中,我添加以下代碼:選擇第二個選項卡將停止第一個選項卡中的動畫並且不會重新啓動

[UIView animateWithDuration:30 
         delay:0 
        options:UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear 
       animations:^(void) { 
        CGRect imageViewFrame = self.scrollingImageView.frame; 
        imageViewFrame.origin.x = CGRectGetWidth(imageViewFrame)/-2; 
        self.scrollingImageView.frame = imageViewFrame; 
       } completion:nil]; 

然後,我創建在IB相關的UIImageView財產,並將其連接起來。

@property (nonatomic, strong) IBOutlet UIImageView *scrollingImageView; 

我把一個圖像放到imageview中,在模擬器或我的iPod Touch上運行它,我看到滾動。

但是,當我選擇第二個選項卡然後回到第一個選項卡時,即使我將上述內容放入viewWillAppear,動畫也會立即完成看起來是立即顯示的內容,並且無法重新啓動它。我已經搜索了很多答案,並且無法解決它。

任何幫助,將不勝感激。

回答

4

看來你正在處理的問題是特定於標籤欄控制器,而不是故事板或特定的動畫。問題是,當您切換到不同的選項卡時,動畫停止,並且當您返回到第一個選項卡時,它不會恢復。

viewWillAppear中再次訂購動畫不起作用(如您所述),但是如果您首先刪除viewWillDisappear中的動畫,則應該在viewWillAppear中再次訂購動畫。例如

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [self.view.layer removeAllAnimations]; // or whatever you need to use to remove your specific animation 
} 

注意:動畫移除代碼應在viewWillDisappear而非viewWillUnload,因爲viewWillUnload當你切換標籤不會被調用。

相關問題