Для отображения фото/видео из массива в CollectionView и ScrollView вам потребуется использовать несколько компонентов Swift. Давайте разберемся с ними по очереди.
Первым делом вам нужно создать массив, который будет содержать фото или видео, которые вы хотите отображать. Предположим, что у вас есть массив mediaArray
, в котором хранятся фото или видео объекты.
Для начала создадим CollectionView. Вам понадобится создать новый класс, наследующий от UICollectionViewDelegate
и UICollectionViewDataSource
. В этом классе вы должны реализовать несколько методов:
class MyCollectionViewDataSource: NSObject, UICollectionViewDelegate, UICollectionViewDataSource { var mediaArray: [MediaType] = [] // Количество объектов в массиве func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return mediaArray.count } // Создание и настройка ячейки CollectionView func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MediaCell", for: indexPath) as! MediaCollectionViewCell // Здесь вы можете настроить ячейку, например, установить изображение на основе объекта из mediaArray let mediaObject = mediaArray[indexPath.row] cell.imageView.image = mediaObject.image return cell } }
Затем создайте на вашем экране CollectionView и подключите его к созданному классу DataSource:
let collectionView = UICollectionView(frame: CGRect.zero, collectionViewLayout: UICollectionViewFlowLayout()) let collectionViewDataSource = MyCollectionViewDataSource() // Установите направление прокрутки горизонтальной или вертикальной let flowLayout = UICollectionViewFlowLayout() flowLayout.scrollDirection = .horizontal collectionView.collectionViewLayout = flowLayout collectionView.dataSource = collectionViewDataSource collectionView.delegate = collectionViewDataSource
Теперь у вас есть работающий CollectionView, который отображает фото или видео из вашего массива.
Теперь рассмотрим ScrollView.
ScrollView может быть использован для отображения фотографий или видео в увеличенном виде. Он лучше подходит для отображения отдельных элементов, чем для отображения списка.
Вам снова понадобится создать новый класс, наследующий от UIScrollViewDelegate
. В этом классе вы должны реализовать методы, чтобы ScrollView отображал фотографии или видео из вашего массива.
class MyScrollViewDelegate: NSObject, UIScrollViewDelegate { var mediaArray: [MediaType] = [] // Создайте и настройте View для объекта ScrollView func setupScrollView() { for (index, mediaObject) in mediaArray.enumerated() { let imageView = UIImageView(frame: CGRect(x: index * scrollView.frame.width, y: 0, width: scrollView.frame.width, height: scrollView.frame.height)) imageView.image = mediaObject.image imageView.contentMode = .scaleAspectFit scrollView.addSubview(imageView) } scrollView.contentSize = CGSize(width: scrollView.frame.width * CGFloat(mediaArray.count), height: scrollView.frame.height) } // Метод вызывается при прокручивании ScrollView func scrollViewDidScroll(_ scrollView: UIScrollView) { // Здесь вы можете выполнить дополнительные действия при прокрутке, если это необходимо } }
Затем создайте ScrollView и подключите его к созданному классу Delegate:
let scrollView = UIScrollView(frame: view.bounds) let scrollViewDelegate = MyScrollViewDelegate() scrollView.isPagingEnabled = true scrollView.showsHorizontalScrollIndicator = false scrollView.delegate = scrollViewDelegate // Установите ваш массив с фото или видео scrollViewDelegate.mediaArray = mediaArray // Настроим ваши вьюшки scrollViewDelegate.setupScrollView()
Теперь у вас есть работающий ScrollView, который отображает фото или видео из вашего массива.
Помните, что вы можете настроить и дополнить этот код в соответствии с вашими требованиями и оформлением пользовательского интерфейса.