Вот другой подход:
Используйте UITableView, но настройте свойства так, чтобы он выглядел как обычный вид прокрутки. (В основном, включите несколько миниатюр в каждой строке и удалите разделитель строк.)
По мере удаления строк с экрана, представления будут перерабатываться, и память, используемая вашими UIImageViews, может быть возвращена.
Обратите внимание, что это требует дополнительной работы, чтобы точно знать, какой эскиз был нажат пользователем, но это не так уж сложно. Я делал это в прошлом и использовал свойство tag для хранения индекса массива. Это не идеально, но достаточно простой взлом.
Обратите внимание, что это работает, только если ваша таблица прокручивается только вертикально. Насколько я знаю, у вас не может быть UITableView с горизонтальной прокруткой.