如何解决无法显示 UIActivityIndicatorView
我遇到一个问题。我正在使用以下代码来显示 UIActivityIndicatorView。我的要求是能够创建一个 UIActivityIndicatorView 并在我单击带有标记 1 的按钮时显示它,如果我单击其他按钮,UIActivityIndicatorView 将从超级视图中删除。
class ViewController: UIViewController {
lazy var acLoad:(UIActivityIndicatorView) = {
let myActivityIndicator = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.white)
myActivityIndicator.center = view.center
myActivityIndicator.hidesWhenStopped = true
myActivityIndicator.startAnimating()
return myActivityIndicator
}()
//more code
@objc func btnAction(sender: UIButton){
switch sender.tag {
case 1:
print("created")
view.addSubview(acLoad)
acLoad.startAnimating()
default:
print("removed")
acLoad.stopAnimating()
acLoad.removeFromSuperview()
}
}
}
以上不行,点击后可以得到打印日志,但是UIActivityIndicatorView不显示,有什么办法吗?
解决方法
您的 UIActivityIndicatorView
似乎放错了位置(错误的帧值) - 因此您看不到它。
print("created")
view.addSubview(acLoad)
acLoad.startAnimating()
// Add this line in your button tap code
// It will tell you where it is placed inside your view
print(acLoad.frame)
如果您发现它的框架不是您想要的位置,只需修复您的布局代码,它就会在您期望的位置。
另一个注意事项 - myActivityIndicator.hidesWhenStopped = true
使其在 stopAnimating()
调用时自动隐藏。所以你只能添加一次,而不是每次都删除添加。
还要检查您的 view.backgroundColor
与 acLoad
风格。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。