【问题标题】:UIActivityIndicator shows for a split secondUIActivityIndicator 显示一瞬间
【发布时间】:2016-06-17 09:58:34
【问题描述】:
当用户在看到下一个视图之前点击一个按钮时,我试图为我的应用显示一个旋转的活动指示器 - 它有点工作,我看到它一瞬间
@IBOutlet weak var myActivityIndicator: UIActivityIndicatorView!
@IBOutlet weak var eventsbtn: UIButton!
@IBOutlet weak var pubsbtn: UIButton!
override func viewWillAppear(animated: Bool) {
myActivityIndicator.stopAnimating()
myActivityIndicator.hidden = true
}
override func viewDidLoad() {
super.viewDidLoad()
eventsbtn.layer.cornerRadius = 8
pubsbtn.layer.cornerRadius = 8
}
@IBAction func getEvents(sender: AnyObject) {
myActivityIndicator.hidden = false
myActivityIndicator.startAnimating()
}
【问题讨论】:
标签:
ios
swift
uiactivityindicatorview
【解决方案1】:
重构您的代码。您无需停止viewWillAppear 中的活动指示器。您可以将其隐藏在viewDidLoad 中。代码如下:
@IBOutlet weak var myActivityIndicator: UIActivityIndicatorView!
@IBOutlet weak var eventsbtn: UIButton!
@IBOutlet weak var pubsbtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
eventsbtn.layer.cornerRadius = 8
pubsbtn.layer.cornerRadius = 8
myActivityIndicator.hidden = true
}
@IBAction func getEvents(sender: AnyObject) {
myActivityIndicator.hidden = false
myActivityIndicator.startAnimating()
}
确保活动指示器的IBOutlet 和获取事件的IBAction 在Interface Builder 中正确连接。
【解决方案2】:
我更改了它,但它不起作用,直到我回到导航中
@IBOutlet weak var myActivityIndicator: UIActivityIndicatorView!
@IBOutlet weak var eventsbtn: UIButton!
@IBOutlet weak var pubsbtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
myActivityIndicator.stopAnimating()
myActivityIndicator.hidden = true
eventsbtn.layer.cornerRadius = 8
pubsbtn.layer.cornerRadius = 8
}
@IBAction func getEvents(sender: AnyObject) {
myActivityIndicator.hidden = false
myActivityIndicator.startAnimating()
}
【解决方案3】:
viewDidAppear 可能是停止动画和隐藏微调器的更合适的位置。