我想在打开应用程序时运行UIActivityIndicator。我怎样才能做到这一点?我的代码就是我在那里共享代码的方式。我希望启动屏幕打开时此代码能够工作。
@objc func buttonTapped(_ sender: UIButton) {
let size = CGSize(width: 30, height: 30)
let selectedIndicatorIndex = sender.tag
let indicatorType = presentingIndicatorTypes[selectedIndicatorIndex]
startAnimating(size, message: "Loading...", type: indicatorType, fadeInAnimation: nil)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.5) {
NVActivityIndicatorPresenter.sharedInstance.setMessage("Authenticating...")
}
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) {
self.stopAnimating(nil)
}
}
for (index, indicatorType) in presentingIndicatorTypes.enumerated() {
let x = 150
let y = 250
let frame = CGRect(x: x, y: y, width: 100, height: 100)
let activityIndicatorView = NVActivityIndicatorView(frame: frame,
type: .orbit)
let animationTypeLabel = UILabel(frame: frame)
activityIndicatorView.padding = 20
if indicatorType == NVActivityIndicatorType.orbit {
activityIndicatorView.padding = 0
}
self.view.addSubview(activityIndicatorView)
self.view.addSubview(animationTypeLabel)
activityIndicatorView.startAnimating()
let button: UIButton = UIButton(frame: frame)
button.tag = index
#if swift(>=4.2)
button.addTarget(self,
action: #selector(buttonTapped(_:)),
for: .touchUpInside)
#else
button.addTarget(self,
action: #selector(buttonTapped(_:)),
for: UIControlEvents.touchUpInside)
#endif
self.view.addSubview(button)
}
答案 0 :(得分:0)
您要实现的目标是在启动屏幕上显示UIActivityIndicator
,很遗憾,不可能。如果要在启动屏幕上进行任何动画处理,请使用您的第一个视图控制器作为初始屏幕,并在初始屏幕上的动画结束时重定向到主屏幕。
didFinishLaunchingWithOptions
方法调用它P.S。仅仅为了向用户显示一些很棒的动画/加载屏幕而延迟应用程序启动不是一个好主意。对于初次使用应用程序的用户来说,这似乎很酷,但是,随着应用程序的广泛使用,每次启动应用程序时,即使等待几秒钟,用户也会感到沮丧。