在运行后台队列时动画gif

时间:2018-04-09 20:34:51

标签: swift xcode background-process animated-gif

运行此代码时,在执行全局队列中的代码之前,不会在UI中显示spinner gif图像。

在运行其他代码时,如何使动画保持可见和动画效果。 这只是使用Appplescript / ASOC的情况吗?

class ViewController: NSViewController {
  @IBOutlet weak var progresSpinnerView: NSImageView! 
  @objc dynamic var spinnerImage:NSImage? = nil

  override func viewDidAppear() {
    self.progresSpinnerView.animates = true
    self.spinnerImage =  NSImage(contentsOf: URL(fileURLWithPath: pathToResources() + "/" + "Spinner.gif"))
    if let displayName = Bundle.appDisplayName {
        print( "\(displayName) started....")
    }
    self.progresSpinnerView = nil
  }

  @IBAction func loadInfo(_ sender:Any) {
    self.progresSpinnerView.image = self.spinnerImage
    loadFromJob()
    self.progresSpinnerView.image = nil
  }

  func loadFromJob() {
    DispatchQueue.global(qos: .userInitiated).sync {
        ... run AppleScriptObjc for InDesign
        DispatchQueue.main.async {
            //update UI
        }

        ... run AppleScriptObjc for InDesign
        DispatchQueue.main.async {
            //update UI
        }

        ... run AppleScriptObjc for InDesign
        DispatchQueue.main.async {
            //update UI
        }
      }
    }
  }

0 个答案:

没有答案