不确定的进度指示器没有动画
Indeterminate progress indicator not animating
即使我使用队列或睡眠,进度指示器也不会开始动画。
我有一个读取目录内容的函数,它为每个 mp3 文件获取文件标签。另外,我阅读了有关进度指示器的帖子,但到目前为止没有任何帮助。
{
progressIndicator.startAnimation(self)
sleep(2)
if let item = self.outlineView.item(atRow: self.outlineView.selectedRow) {
self.arrMp3File.removeAll()
do {
let xx = (item as! DirectoryItem).url
let b = self.getSubDir(path: xx.path)
print(xx.path)
for bb in b {
self.getTagsFromFile(file: xx.path+"/"+bb)
}
}
self.arrMp3File.sort(by: {
[=10=].file < .file
})
self.loadTagsFromButton.isEnabled = true
self.tableView.reloadData()
}
self.progressIndicator.stopAnimation(self)
}
我想展示动画,让用户知道应用没有被冻结。如果我删除 stopAnimation,它会在文件显示在 tableview 上后开始动画。
我添加睡眠只是为了检查动画。
我解决了
{
if let item = self.outlineView.item(atRow: self.outlineView.selectedRow) {
self.arrMp3File.removeAll()
do {
let xx = (item as! DirectoryItem).url
let b = self.getSubDir(path: xx.path)
DispatchQueue.global(qos: .background).async { [weak self] in
DispatchQueue.main.async {
self?.progressIndicator.isHidden = false
self?.progressIndicator.startAnimation(self)
}
for bb in b {
self?.getTagsFromFile(file: xx.path+"/"+bb)
}
DispatchQueue.main.async {
self?.arrMp3File.sort(by: {
[=10=].file < .file
})
self?.tableView.reloadData()
self?.loadTagsFromButton.isEnabled = true
self?.progressIndicator.stopAnimation(self)
self?.progressIndicator.isHidden = true
}
}
}
}
}
即使我使用队列或睡眠,进度指示器也不会开始动画。
我有一个读取目录内容的函数,它为每个 mp3 文件获取文件标签。另外,我阅读了有关进度指示器的帖子,但到目前为止没有任何帮助。
{
progressIndicator.startAnimation(self)
sleep(2)
if let item = self.outlineView.item(atRow: self.outlineView.selectedRow) {
self.arrMp3File.removeAll()
do {
let xx = (item as! DirectoryItem).url
let b = self.getSubDir(path: xx.path)
print(xx.path)
for bb in b {
self.getTagsFromFile(file: xx.path+"/"+bb)
}
}
self.arrMp3File.sort(by: {
[=10=].file < .file
})
self.loadTagsFromButton.isEnabled = true
self.tableView.reloadData()
}
self.progressIndicator.stopAnimation(self)
}
我想展示动画,让用户知道应用没有被冻结。如果我删除 stopAnimation,它会在文件显示在 tableview 上后开始动画。
我添加睡眠只是为了检查动画。
我解决了
{
if let item = self.outlineView.item(atRow: self.outlineView.selectedRow) {
self.arrMp3File.removeAll()
do {
let xx = (item as! DirectoryItem).url
let b = self.getSubDir(path: xx.path)
DispatchQueue.global(qos: .background).async { [weak self] in
DispatchQueue.main.async {
self?.progressIndicator.isHidden = false
self?.progressIndicator.startAnimation(self)
}
for bb in b {
self?.getTagsFromFile(file: xx.path+"/"+bb)
}
DispatchQueue.main.async {
self?.arrMp3File.sort(by: {
[=10=].file < .file
})
self?.tableView.reloadData()
self?.loadTagsFromButton.isEnabled = true
self?.progressIndicator.stopAnimation(self)
self?.progressIndicator.isHidden = true
}
}
}
}
}