Насколько мне известно, UICollectionView не обрабатывает ширину автоматически. Однако вы можете легко установить ширину через делегата. Я отсылаю вас к этому сообщению: Dynami c ширина ячейки UICollectionView в зависимости от ширины метки
Это были UILabels вместо UIImageViews, но метод должен быть аналогичным, используя свойство размера UIImage вместо sizeWithAttributes NSString.
РЕДАКТИРОВАТЬ: После некоторых тестов выясняется, что UICollectionView обрабатывает ширину ячейки автоматически так же, как автоматизации c высота. Так что делегат не нужен. (см. этот учебник для получения подробной информации)
Однако, если изображения не доступны сразу (например, для удаленной загрузки), вам следует подождать, пока все изображения будут загружены, а затем отобразить коллекцию. В противном случае вам нужно будет сделать макет недействительным после отображения каждого изображения, что может привести к визуальным сбоям.