Так что на самом деле, вам нужна система постановки и снятия представления с экрана, когда они приходят и уходят.
Простой пример, на который вы должны обратить внимание, - это приложение Photos, которое уже существует на вашем iPhone. Хотя у вас может быть миллион изображений на «стене», вы можете видеть только столько изображений одновременно на вашем экране. Это означает, что вам не нужен миллион UIImageViews для всех изображений на стене, только около 20, которые умещаются на экране.
Думайте о стене не как о едином большом представлении, которое доступно постоянно, а вместо этого следуйте парадигме, изложенной UITableView. UITableView ставит UITableViewCell в очередь по мере их исчезновения и (надеюсь) источник данных удаляет из очереди и повторно использует эти ячейки таблицы, просто изменяя информацию, отображаемую в новой строке.
У вас не должно возникнуть проблем с сообщением о касаниях того, какое изображение было затронуто (поскольку вы можете просто посмотреть, какое изображение содержится в просмотре изображений, или через какое-либо другое сохраненное свойство).
Вышеуказанные принципы должны также применяться к самим UIImages; поскольку вы сохраняете их на диск, вам не обязательно все они хранятся в памяти, поэтому подумайте об их выпуске и получении по требованию. Стоит отметить: иногда, когда вы читаете изображения с диска, прокрутка может быть довольно медленной, поэтому вам нужно разобраться в этом самостоятельно.