2015-12-30 137 views
2

在視圖控制器中,我有兩個圖像視圖,一個是頂部,另一個是兩個按鈕。如何檢查資產中的UIImage是否已完全加載

我有UIImage小號

let images = [UIImage(named: "1"), UIImage(named: "2"), UIImage(named: "3")] 

我有這樣的輔助方法來轉換到下一個圖像陣列由衰落

func changeImage(image: UIImage){ 
self.topImageView.alpha = 0 //This is to initially make the next image to fade in 
self.topImageView.image = image 
UIView.animateWithDuration(0.5, animations: {() -> Void in 
self.topImageView.alpha = 1.0 //this will fade in the next image 
}) { (Bool) -> Void in 
    self.bottomImageView.image = image //Previous image will be replaced with the now current image after fade 
    } 
} 

我附着在先前此輔助方法和下一個按鈕,以通過循環播放圖片

現在的問題是,每當我點擊該按鈕,動畫漸變不工作,只是簡單地加載在博特圖像omImageView。但是當我點擊之前,淡入淡出效果。

我相信它爲什麼這樣做的原因是因爲下一個圖像仍在加載的第一次,然後試圖回到它的時候,淡出終將工作。

那麼,你如何加載圖像預先使動畫漸變會的工作?

回答

4

我建議移動從兩個客場覆蓋UIImageView S和簡單地使用一個。然後你可以使用下面的代碼來改變動畫形象:

UIView.transitionWithView(self.topImageView, duration: 0.5, options: [.TransitionCrossDissolve], animations: {() -> Void in 
    self.topImageView.image = image 
    }) { completed in 
     print("transition finished") 
} 

兩個imageViews只介紹不想要的問題(如你的問題清楚地顯示)。而且一種觀點簡單得多。

關於你的理論,爲什麼您的代碼不會像預期的那樣:我沒有聽說圖像加載服用時間任何明顯的量 - 必須有別的東西是錯誤的。例如你topImageView真的對其他視圖的頂部

+0

謝謝!得到它了。 發現,由於某種原因,這個錯誤是在iPhone 4S,但5和更新不顯示我遇到的問題。 –