Я не совсем уверен, почему это работает медленно. Иногда я могу нажать на строку, и она мгновенно открывает всплывающее окно. Иногда я могу нажать на строку, и загрузка занимает 2-3 секунды. Почти похоже, что, возможно, код запутался в получении ячейки.Swift Представление popover из UITableView работает очень медленно
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)
}
}
}
Любые предложения по повышению производительности при представлении popover из метки значений в ячейке просмотра таблицы? Во время прослушивания я проверил навигатор отладки и нет CPU или всплесков памяти. Это происходит как для имитированного iPad, так и для iPad Air 2. У меня был бег, который сбрасывал с экрана. Я удалил это, и в некоторых случаях он все еще показывает всплывающее окно очень медленно.
Вот дикое и сумасшедшее предположение: оберните весь интерьер вашего 'didSelectRowAtIndexPath' в блок' delay' (для моей функции 'delay', см. Http://stackoverflow.com/a/24318861/341994). Это может быть 'delay' of' 0', или '0.1'. Посмотрите, не имеет значения. Если это не поможет, хорошо, мы потерпели неудачу, вернем его обратно. – matt
как предложено @matt, вы можете попытаться явно сделать код запущенным в основном потоке. –
Должен был понять, что, думаю, мне действительно интересно, есть ли что-то с кодом, который заставлял его медленно обрабатывать, что я делал неправильно. Использование предложений Мэтта работает. – matthew