2016-08-29 2 views
6

На мой взгляд, у меня есть несколько видов (UICollectionViewCell), которые в зависимости от модели могут включать UIImageView в качестве подзаголовка (каждый с отдельным экземпляром).Разница между UIImageView.hidden и UIImageView.image = nil

Для моего случая, представления, которые не показывают UIImageView, превосходят число тех, которые его показывают.

Я могу выбрать либо позвонить UIImageView.hidden = false, когда я хочу, чтобы представления отображали изображение, или чтобы установить изображение внутри изображения, то есть UIImageView.image = UIImage(named: ...).

Мне интересно, что более впечатляющий подход, с проблемами памяти и скорости? У меня такое ощущение, что разница не достаточно значительна, особенно с кэшированием UIImage(named:), но я хочу это выяснить.

ответ

2
  1. если вы установите UIImageView.image = nil, то, конечно, если изображение находится в памяти, он будет выпущен (затем перераспределяются при повторном использовании), поэтому я предлагаю всегда сделать это

  2. , если вы хотите быть уверены, что UIImageView.image (1) не будет видно, (2) не занимает в cell и (3) не будет означать frame время рендеринга, а затем также установить UIImageView.hidden = true

Я предлагаю взять оба переменного тока ЦИИ. Выступления здесь не являются проблемой, на мой взгляд (учитывая, что у вас очень мало клеток с изображением внутри)

0

nil - это действие означает, что то, что было выделено imageview, будет освобождено из памяти.

скрытый - imageview все еще указывает на это место памяти, но он был скрыт в его родительском представлении.

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