gpt4 book ai didi

ios - 动画 UIView isHidden subview

转载 作者:IT王子 更新时间:2023-10-29 05:32:56 26 4
gpt4 key购买 nike

我有一个 UIView EmptyCollectionView,它在我的 UICollectionView 为空时显示。我的工作方式是在 ViewController 的 viewDidLoad 中创建 UIView 和 addSubview,然后根据需要更改 View (以及 collectionview)的 toggle isHidden 属性。

现在我已经有了核心功能,我想稍微完善一下,我不想向空 View 中包含的 subview 添加一些微妙的动画,例如制作包含的 imageview 在显示器上弹跳。

所以我的问题是,检测何时显示 UIView 的最佳方法是什么(即是否有我可以使用的 viewDidAppear 类型回调)?

补充问题:我是新手...添加空 View 和切换 isHidden 属性是否是执行此操作的好方法?或者我应该用不同的方式来做吗? (即我是否应该根据需要创建和销毁 View ,而不是保留它)

谢谢

最佳答案

我认为最好的方法是扩展 UIView

extension UIView {

func fadeIn(_ duration: TimeInterval = 0.2, onCompletion: (() -> Void)? = nil) {
self.alpha = 0
self.isHidden = false
UIView.animate(withDuration: duration,
animations: { self.alpha = 1 },
completion: { (value: Bool) in
if let complete = onCompletion { complete() }
}
)
}

func fadeOut(_ duration: TimeInterval = 0.2, onCompletion: (() -> Void)? = nil) {
UIView.animate(withDuration: duration,
animations: { self.alpha = 0 },
completion: { (value: Bool) in
self.isHidden = true
if let complete = onCompletion { complete() }
}
)
}

}

因此,您只需调用 view.fadeIn() 即可获得默认的 0.2 秒动画,或调用 view.fadeIn(1) 使其持续一秒。

您甚至可以添加完成事件:

view.fadeOut(0.5, onCompletion: {
print("Animation completed, do whatever you want")
})

关于ios - 动画 UIView isHidden subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44198487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com