gpt4 book ai didi

ios - ProgressView 未使用 Swift 在 View Controller 上显示

转载 作者:行者123 更新时间:2023-11-28 08:49:39 25 4
gpt4 key购买 nike

我正在显示一个 alertController,如果用户单击"is",应该显示一个 ProgressView,但不幸的是,Progressview 和标签没有出现。我怎样才能刷新我的 ViewController。这里是为 alertController 的 yes-handler 执行的 cod。代码将毫无问题地执行,但没有出现进度 View :

func initProgressView(){
turn = 0
let xCoord = self.view.center.x
let yCoord = self.view.center.y + 10
progressLabel = UILabel(frame: CGRect(x: xCoord, y: yCoord, width: 100, height: 23))
progressLabel.text = "0 %"



progressLabel.font = UIFont.boldSystemFontOfSize(14)
progressView.center = self.view.center
progressView.trackTintColor = UIColor.lightGrayColor()
progressView.tintColor = UIColor.blueColor()
// self.view.backgroundColor = UIColor.yellowColor()
self.view.addSubview(progressLabel)
self.view.addSubview(progressView)

}

这里是完整的调用顺序:initProgressView()//见上一篇

然后调用importData:

func importData (source : ImportDataInterface, data : NSData, progressStep : Int) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {
source.importData(data)
dispatch_async(dispatch_get_main_queue(), {
self.counter += progressStep
return
})
})



}

最后在调用函数中:progressView.removeFromSuperview() 方法progressLabel.removeFromSuperview()

如何刷新 ViewController 或其他什么可能是 progressView 没有出现的原因。问题可能是约束或自动布局问题。

谢谢阿诺德

最佳答案

您没有提供足够的信息。您需要向我们展示调用顺序。

在您的代码返回之前,iOS 不会将更改呈现到屏幕上。以下编码模式将不起作用:

create progress indicator
add progress indicator to superview
start progress indicator spinning
do long-running task
stop progress indicator

相反,你要做的是这样的:

create progress indicator
add progress indicator to superview
start progress indicator spinning
invoke long-running task with a call to dispatch_after and a delay of 0:
dispatch_after(main queue, delay 0)
{
do long running task
stop activity indicator
}

对 dispatch_after 的调用将您的闭包排队,以便在您的代码下次返回时在主线程上运行,并且事件循环即使延迟值为 0

关于ios - ProgressView 未使用 Swift 在 View Controller 上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com