我有一个函数叫做
HelpersFunctions
做所有的计算。
doCalculation
负责计算。
因此,我将以下通知添加到
计算
具体如下:
NotificationCenter.default.post(name: .return_progress, object: self)
for i in 1...n1 {
//Do all the calculation
}
所以,一旦我够到
NotificationCenter.default.post
,它将移动到名为
CreateNewElementVC
现在,在
ViewDidLoad
//progress
NotificationCenter.default.addObserver(self, selector: #selector(showProgress), name: .return_progress, object: nil)
在同一个swift文件中,我添加了以下内容:
let container_elementProperty: ProgressBarView = {
let view = ProgressBarView()
view.backgroundColor = UIColor(white: 0, alpha: 0.5)
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
@objc func showProgress() {
if(progressCounter > 1.0){timer.invalidate()}
print("Step 1")
container_elementProperty.frame = CGRect(x: 100, y: 100, width: 200, height: 200)
container_elementProperty.backgroundColor = UIColor(white: 0, alpha: 0.5)
container_elementProperty.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleDismiss)))
let queue = DispatchQueue(label: "queue1", qos: .userInteractive)
queue.async {
print("Step 2")
self.view.addSubview(self.container_elementProperty)
}
//view.addSubview(container_elementProperty)
print("Step 3")
container_elementProperty.progress = progressCounter
progressCounter = progressCounter + progressIncrement
let x1: Float = Float(start_Counting)
let x2: Float = Float(End_Counting)
let xx: Float = x1 / x2 * 100
print("Start at: \(xx) %)")
}
所以,首先我把所有需要的数据放在
创建新元素vc
,然后有一个名为run的按钮来执行所有计算,然后它将移动到另一个
TableViewController
所有的结果。
所以当我在里面的时候
,将显示进度条。
container_elementProperty (UIview)
刚计算完就出现了,这使得进度条毫无用处。
container_elementProperty UIView
被人看见?
我即将解决这个问题,因为我可以看到堆栈的进度如下图,我只想在完成计算之前在屏幕上显示这个。
与此问题相关的警告是:
UIView.addSubview(_:) must be used from main thread only
可以在此检查示例项目
link
在github。
感谢任何支持。