【发布时间】:2017-02-23 13:57:40
【问题描述】:
最近让我印象深刻的一件事是 UIAlertController 在其中呈现大量元素时速度有多慢。
我的 for 循环迭代了 400 多个元素。我查了一下,循环只需要几分之一秒,但UIAlertController 的呈现需要超过 16 秒!!
我附上 Time Profiler 输出以支持我所写的内容。 问题是 - 有什么方法可以提高这个组件的速度,或者有没有 UIAlertController 的替代品(自定义库),这在性能方面更好?
DispatchQueue.global(qos: .userInitiated).async {
for item in items {
let button = UIAlertAction(title: item.title, style: .default, handler: { (alertAction) in
// alert action
})
menuValueSelectionController.addAction(button)
}
DispatchQueue.main.async {
if let popoverController = menuValueSelectionController.popoverPresentationController {
popoverController.sourceView = sender
popoverController.sourceRect = sender.bounds
}
menuValueSelectionController.view.layoutIfNeeded()
self.present(menuValueSelectionController, animated: true, completion: nil)
}
}
【问题讨论】:
标签: ios swift swift3 uialertcontroller