Swift 从 UITableView 呈现弹出窗口运行速度非常慢
Swift Presenting popover from UITableView runs very slow
我不太确定为什么运行缓慢。有时我可以点击该行,它会立即打开弹出窗口。有时我可以点击行,加载需要 2-3 秒。几乎似乎代码在获取单元格时感到困惑。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let selectedItem = self.filteredTransactions[indexPath.row]
if let cell = tableView.cellForRowAtIndexPath(indexPath) as? BudgetHomeCell {
if let addTXView = self.storyboard?.instantiateViewControllerWithIdentifier("BHAddTXVC") as? BHAddTXVC {
addTXView.modalPresentationStyle = .Popover
addTXView.preferredContentSize = CGSizeMake(200, 200)
let popover = addTXView.popoverPresentationController
popover?.permittedArrowDirections = .Any
popover?.delegate = self
popover?.sourceView = cell.valueLabel
popover?.sourceRect = cell.valueLabel.bounds
addTXView.selectedTX = selectedItem
self.presentViewController(addTXView, animated: true, completion: nil)
}
}
}
在 table 视图单元格中显示来自值标签的弹出窗口时,有什么改进性能的建议吗?在点击时,我检查了调试导航器,没有 CPU 或内存峰值。对于模拟的 iPad 和 iPad Air 2 都会发生这种情况。我确实有一个滑动手势 运行 把它扔掉了。我删除了它,但在某些情况下它仍然非常缓慢地显示弹出窗口。
有人在另一个 post 中回答了这个问题。在这里查看:
诀窍是在选择行后手动取消选择。它对我很有用。如果需要,请确保在取消选择之前使用或存储所选行。
我真的不知道为什么。
但这通过将 DispatchQueue.main.async {}
放入 didSelectRowAtItemAt
.
解决了我的问题
我不太确定为什么运行缓慢。有时我可以点击该行,它会立即打开弹出窗口。有时我可以点击行,加载需要 2-3 秒。几乎似乎代码在获取单元格时感到困惑。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let selectedItem = self.filteredTransactions[indexPath.row]
if let cell = tableView.cellForRowAtIndexPath(indexPath) as? BudgetHomeCell {
if let addTXView = self.storyboard?.instantiateViewControllerWithIdentifier("BHAddTXVC") as? BHAddTXVC {
addTXView.modalPresentationStyle = .Popover
addTXView.preferredContentSize = CGSizeMake(200, 200)
let popover = addTXView.popoverPresentationController
popover?.permittedArrowDirections = .Any
popover?.delegate = self
popover?.sourceView = cell.valueLabel
popover?.sourceRect = cell.valueLabel.bounds
addTXView.selectedTX = selectedItem
self.presentViewController(addTXView, animated: true, completion: nil)
}
}
}
在 table 视图单元格中显示来自值标签的弹出窗口时,有什么改进性能的建议吗?在点击时,我检查了调试导航器,没有 CPU 或内存峰值。对于模拟的 iPad 和 iPad Air 2 都会发生这种情况。我确实有一个滑动手势 运行 把它扔掉了。我删除了它,但在某些情况下它仍然非常缓慢地显示弹出窗口。
有人在另一个 post 中回答了这个问题。在这里查看:
诀窍是在选择行后手动取消选择。它对我很有用。如果需要,请确保在取消选择之前使用或存储所选行。
我真的不知道为什么。
但这通过将 DispatchQueue.main.async {}
放入 didSelectRowAtItemAt
.