我遇到一个问题。我使用下面的代码来显示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没有显示,你有什么想法吗?
发布于 2021-07-11 12:42:45
看起来你的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风格。
https://stackoverflow.com/questions/68333201
复制相似问题