2017-05-26 214 views
1

我有一個UIView EmptyCollectionView,當我的UICollectionView爲空時顯示。我的工作方式是創建UIView和我的ViewController的viewDidLoad中的addSubview,然後根據需要更改視圖的切換isHidden屬性(以及collectionview)。動畫UIView isHidden子視圖

我想稍微打磨一下現在我的核心功能正在工作,我不想爲包含在我的空視圖中的子視圖添加一些微妙的動畫,例如讓包含的imageview反彈顯示。

所以我的問題是,什麼是最好的方式來檢測何時UIView顯示(即有viewDidAppear型回調我可以使用)?

補充問題:我是新手......這是添加空視圖和切換isHidden屬性的一個好辦法嗎?或者我應該以不同的方式去做? (即我應該改爲創建和銷燬視圖根據需要,而不是保持它周圍)

感謝

+1

你可以動畫'UIView'約束改變,或'UIView'阿爾法 – JuicyFruit

回答

0

您可以動畫EmptyCollectionView的alpha屬性要麼0隱藏或1顯示

UIView.animate(withDuration: 0.5) { 
    self.EmptyCollectionView.alpha = 0 
} 

還要確保isOpaque屬性設置爲False,以使視圖

+0

但我想不是動畫子視圖視圖本身。我的emptyview包含一個imageview,當emptyview顯示或隱藏時,我想爲imageview設置動畫效果。我已經通過添加一個設置'self.isHidden'的顯示和隱藏功能並進行動畫來修復它。討厭,因爲現在有些視圖使用'isHidden = false'而其他人使用'view.show()',看起來有點混亂,但它現在的作品 – TRG

3

這工作的透明度,我希望它可以幫助你。要隱藏視圖:

UIView.animate(withDuration: 0.3/*Animation Duration second*/, animations: { 
    self.EmptyCollectionView.alpha = 0 
}, completion: { 
    (value: Bool) in 
     self.EmptyCollectionView.isHidden = true 
}) 

要顯示視圖:

self.EmptyCollectionView.isHidden = false 
UIView.animate(withDuration: 0.3, animations: { 
     self.EmptyCollectionView.alpha = 1 
    }, completion: nil)