У вас есть автоматическое размещение для просмотра сотовой ячейки? Вы перезагружаете представление таблицы, когда оно не видно (например, когда контроллер подробного представления нажат)? Это похоже на известную ошибку. См. Это question/answer. Отчет об ошибке Apple: rdar: // 15175803
В принципе, у вас есть многоуровневое решение, которое не идеально, но даст вам удовлетворительные результаты. Во-первых, это всегда верно, оптимизируйте свои ограничения в ячейке представления таблицы. Если у вас есть ограничения, измененные динамически, убедитесь, что вы не вызываете ненужных макетов и рисунков. Во-вторых, не обновляйте представление таблицы, если оно не видно. Это похоже на хак, но другого варианта нет (ну, есть один, но это связано с отключением автоматического макета, что совсем не оптимально, поэтому давайте проигнорируем). Вы можете проверить в своем контроллере вида, если свойство tableView.window
равно nil
, что указывает на скрытие вида таблицы. Если он не скрыт, обновите его нормально, но если это так, не обновляйте. Просто установите флаг, который была обновлена. На странице viewWillAppear:
звоните reloadData
, чтобы обновить таблицу. Вы можете сохранить выбор, запросив представление таблицы для выбранных путей индекса и выбрав их снова после перезагрузки данных.
Вы должны профилировать приложение с помощью инструментов и посмотреть, что занимает процессорное время во время перезагрузки таблицы. Обновите свой вопрос и давайте посмотрим. –
Спасибо Лео за помощь, я сделаю. Мне понадобится немного времени. – x89a10
Просто опубликуйте комментарий, когда вы редактируете, поэтому я вижу, что есть что-то новое. –