2017-05-26 136 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)