2016-09-10 3 views
0

Я уже нашел записи с этой темой на этой странице, а также веб-сайт, который содержит руководство по этой проблеме. Но ничего не получилось.Preload tableView ячейки и предотвратить перезагрузку

Учебное пособие. Я должен удвоить высоту таблицы Table так, чтобы ячейки загружались ранее, но с более высоким tableView я никогда не доходил до последних ячеек.

Моя проблема: я использую tableView для отображения главной страницы моих приложений. Эта mainPage показывает каждый раз, когда тема и если ее необходимо для этой темы, она показывает, например, ячейку с картой, одну с картинками, а иногда и нет. Проблема теперь, если я пытаюсь прокрутить до моего представления, она всегда отстает, потому что загружает карту или эти фотографии. И прокрутка назад, потому что загруженные ячейки уже удалены. Я использовал tableView из-за возможности переключения типов ячеек (mapCell, pictureCell, textCell) вкл и выкл.

Я понимаю эту функцию из-за проблем с памятью, но в моем случае это не так много, и было бы лучше, если бы все мои ячейки были предварительно загружены и оставались в памяти, пока я не сменил тему.

Есть ли быстрый способ сказать, что мой столView имеет такое поведение?

спасибо и приятные поздравления

ответ

0

Объявите массив ячеек.

Выполняйте следующие действия при изменении вашей темы.

  1. Clear вы массив

  2. Создание и настройка всех ячеек добавить в массив.

  3. Верните эти ячейки в методы источника данных, используя индекс строки. Не используйте метод tableque dequeue здесь.

+0

О, мальчик, я так смущен! Как просто было! Я благодарю вас! – kuemme01

+0

Это работает, но это не эффективно с точки зрения памяти. Лучше предварительно загрузить данные модели и по-прежнему использовать метод деактивации ячейки. –

1

Я бы предложил другой подход. Настройте свой контроллер табличного представления для установки изображений-заполнителей в своих ячейках, запускайте асинхронную загрузку, которую вы кешируете на диск, а затем обновите ячейку с ее загруженным контентом, если она по-прежнему отображается, когда загрузка завершена.

Существуют различные сторонние рамки, которые делают все это домашнее хозяйство для вас.

+0

да, другой способ, но я думаю, что все в порядке! У меня есть память размером 30-60 мб или это много? – kuemme01

+0

На новом устройстве 30-60 мб не должно быть проблемой. Сколько записей в таблице мы говорим и насколько велики изображения? –

+0

iOS 9 работает на 4 и более. Это ваше текущее устройство с наименьшими показателями. iOS 10 потеряет 4 секунды и будет работать только на 5 и выше. –

Смежные вопросы