i我有一个正在执行Bakcgorund工作的Xcode应用程序。 这样做是为了阻止用户再次按下登录按钮,我正在使用:
self.view.isUserInteractionEnabled = false
唯一的问题是用户在屏幕上看不到任何东西,并且可能认为应用程序只是卡住了。 您是具有视觉帮助以显示屏幕被遮挡的替代方法吗? (不开发此类对话框)
答案 0 :(得分:2)
禁用登录按钮(和其他任何控件),而不是整个视图:
loginButton.isEnabled = false
如果您不喜欢默认外观(略呈灰色),则可以根据自己的喜好设置按钮的禁用状态。
答案 1 :(得分:0)
仅阻止UIButton的交互。
在按钮上单击:-
sender.isUserInteractionEnabled = false
完成请求后,将其启用:-
btnName.isUserInteractionEnabled = true
答案 2 :(得分:0)
您可以在启动后台任务时设置一个标志,并在任务完成时将其重置
fileprivate var isLoading:Bool = false
func startBackgroundTask() {
guard !isLoading else { return } // if task is running just return
isLoading = true
// don't forget to reset it on background task complete
}
答案 3 :(得分:0)
您可以使用UIActivityIndicator
来满足这种要求。
在UIActivityIndicator
的{{1}}上添加viewController
,并在storyboard
类中创建outlet
。
viewController's
点击@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
,
loginButton
self.loginButton.isEnabled = false
为activityIndicator
制作动画完成后台工作
activityIndicator.startAnimating()
self.loginButton.isEnabled = true
为activityIndicator
设置动画示例:
activityIndicator.stopAnimating()