2015-04-22 38 views
-1

我試圖使用transitionWithVIew動畫UIImageView中的圖像更改動畫。圖像發生變化,但似乎沒有動畫效果。不知道爲什麼會這樣。UIView.transitionWithView不動畫

這裏是我的代碼:

func changeBackgroundAtIndex(index : Int) { 
     switch index { 
     case 0: 
      animateChangeWithImage(MLStyleKit.imageOfAboutMe) 
     case 1: 
      animateChangeWithImage(MLStyleKit.imageOfProjects) 
     case 2: 
      animateChangeWithImage(MLStyleKit.imageOfSkills) 
     case 3: 
      animateChangeWithImage(MLStyleKit.imageOfEducation) 
     case 4: 
      animateChangeWithImage(MLStyleKit.imageOfTheFuture) 
     default: 
      animateChangeWithImage(MLStyleKit.imageOfAboutMe) 
     } 
    } 

    func animateChangeWithImage(image : UIImage) { 
     UIView.transitionWithView(backgroundImageView, duration: 0.4, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: {() -> Void in 
      self.backgroundImageView.image = image 
     }, completion: nil) 
    } 

任何想法?謝謝:)

+0

此功能可以與self.view正常工作。 – Rahul

+0

請參閱此另一個解決方案:http://stackoverflow.com/questions/7616655/uiview-transitionwithview-doesnt-work – Rahul

+0

@Rahul使用'self.View'而不是'self.backgroundImageView'不是爲我修復 – mlevi

回答

1

問題出在index。我正在獲取index,因爲用戶正在滾動瀏覽滾動視圖,滾動視圖會不斷更新index變量,而不是給它足夠的時間來實際製作動畫。

changeBackgroundAtIndex放在scrollViewDidEndDecelerating裏面而不是scrollViewDidScroll固定它。

1

更改函數簽名本,在那裏你既拿你想改變形象和UIImageView的本身。 func animateChangeWithImage(image: UIImage, inImageView: UIImageView)

+0

試過 - 它沒有解決它:/。 – mlevi