[英]add animation to UIview created programmatically
我试图建立一个UILabel。
但是我想在该标签弹出时进行动画处理
我应该在哪里制作标签动画?
这是我的代码
static func setupView(view: UIView){
let networkStatusView = UILabel(frame: CGRect(x: 0, y: 40, width: view.bounds.width, height:50))
networkStatusView.tag = 20
networkStatusView.text = "offline"
networkStatusView.font = UIFont.boldSystemFont(ofSize: 18)
networkStatusView.translatesAutoresizingMaskIntoConstraints = false
networkStatusView.textAlignment = .center
networkStatusView.backgroundColor=UIColor.green
networkStatusView.layer.borderColor = UIColor.white.cgColor
UIView.animate(withDuration: 0.5) {
view.addSubview(networkStatusView)
}
view.layoutIfNeeded()
}
addSubview
函数不可设置动画。 假设您想要淡入效果,则应使用以下命令更改最后4行:
view.addSubview(networkStatusView)
networkStatusView.alpha = 0.0
UIView.animate(withDuration: 0.5) {
networkStatusView.alpha = 1.0
view.layoutIfNeeded()
}
希望这可以帮助
只是让它像从顶部掉下来一样
将View的初始高度设为:0
并对其进行动画处理:
view.addSubview(networkStatusView)
UIView.animate(withDuration: 0.5) {
networkStatusView.frame.size.height = 50
view.layoutIfNeeded()
}
有助于可视化UIView.animate的工作方式;
在调用UIView.animate
方法之前,请先考虑一下UILabel所处的状态。 例如,基于qtngo的答案 , networkStatusView
将是当前ViewController视图的子视图,并且由于alpha设置为0,因此将不可见。
现在,在动画块中:
UIView.animate(withDuration: 0.5) { networkStatusView.alpha = 1.0 view.layoutIfNeeded() }
开发人员告诉系统在接下来的0.5秒内为networkStatusView
设置动画, networkStatusView
视图的Alpha从0更改为1.0,从而使其可见。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.