作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 swift ActivityIndicator : https://github.com/ninjaprox/NVActivityIndicatorView
func runMLModel(image: CIImage, completion: @escaping ([MLMultiArray]) -> Void){
let request = VNCoreMLRequest(model: myModel) { (request, error) in
guard let results = request.results as? [VNCoreMLFeatureValueObservation] else {
fatalError("Model failed to process image")
}
//Do work here get mlData var
completion(mlData)
}
let handler = VNImageRequestHandler(ciImage: image)
do {
try handler.perform([request])
}catch {
print(error)
}
}
func buttonPressedToDoMLWork(){
self.startAnimating(CGSize(width: 200, height: 200), message: "loading", type: NVActivityIndicatorType.audioEqualizer)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()) {
NVActivityIndicatorPresenter.sharedInstance.setMessage("Authenticating...")
}
// Activity Indicator should be showing up here
// but nothing is displayed
runMLModel(image: myImage, completion: { (mlData : [MLMultiArray]) in
print("got data")
//indicator only shows up NOW.. after printing
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) {
self.stopAnimating(nil)
}
})
}
}
CoreML 模块内的代码似乎覆盖了在主 DispatchQueue 上启动 NVAcitivityIndicatorPresenter 的重要性。
有办法让这个该死的指示器在 MLRequest 被触发之前显示出来吗?
最佳答案
将您的 rumMlmodel 放入延迟函数中,不要在异步任务中添加事件代码。之后它将显示您的事件。延迟应该在 0.4 - 0.6 左右
关于ios - 在 CoreML VNCoreMLRequest 之前触发时 ActivityIndicator 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51566527/
我是一名优秀的程序员,十分优秀!