Я хочу воссоздать ту же концепцию, что и приложение для встроенной галереи iOS, на базовом уровне, что означает наличие массива изображений и возможность просматривать их по отдельности и проводить пальцем вправо или влево, чтобы увидеть другие вмассив.Для целей тестирования я установил небольшой массив UIImages, а затем добавил отдельное подпредставление для каждого изображения в массиве в scrollView с включенной подкачкой страниц.Все работает как положено, однако каждый раз, когда я загружаю приложение, пользователь начинает с первого элемента (элемент № 0 в массиве), и я не нахожу способ вручную выбрать первое изображение, которое необходимо показать, напримерЧто делать, если я хочу, чтобы scrollView
сначала показывал третье изображение в массиве, а затем мог пролистывать влево или вправо для перехода к странице с другими изображениями в массиве?Я не могу найти решение.
Я пытался добавить другие подпредставления, но это не работает, приложение работает, как ожидалось, но всегда запускается с первого элемента в массиве, я хочувыберите элемент вручную, поэтому, если я хочу отобразить третье изображение в массиве, collectionView делает это так.У меня есть шесть изображений для целей тестирования (каждое из них называется menu_icon_ (0 ... 5))
@IBOutlet weak var scrollView: UIScrollView! {
didSet {
scrollView.delegate = self
}
}
var images:[ImagePreviewView] = [ImagePreviewView]()
override func viewDidLoad() {
super.viewDidLoad()
images = generateImages()
setupSlideScrollView(imagesPreviews: images)
}
func generateImages() -> [ImagePreviewView]{
var array:[ImagePreviewView] = []
for i in 0...5 {
let imagePreview = Bundle.main.loadNibNamed("ImagePreview", owner: self, options: nil)?.first as! ImagePreviewView
imagePreview.userSelectedImageView.image = UIImage(named: "menu_icon_\(i)")
array.append(imagePreview)
}
return array
}
func setupSlideScrollView(imagesPreviews : [ImagePreviewView]) {
scrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
scrollView.contentSize = CGSize(width: view.frame.width * CGFloat(imagesPreviews.count), height: view.frame.height)
scrollView.isPagingEnabled = true
for i in 0 ..< imagesPreviews.count {
imagesPreviews[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
scrollView.addSubview(imagesPreviews[i])
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let pageIndex = round(scrollView.contentOffset.x/view.frame.width)
print("Page Index is \(pageIndex)")
}
Я хочу реализовать этот код таким образом, чтобы пользователь добавил изображения в представление коллекции, и когдапользователь нажимает на изображение, которое indexPath.item
отправляется на это viewController
и показывает изображение, которое выбрал пользователь, а не первое изображение в массиве, а затем может провести вправо или влево.Я пытаюсь воссоздать, как это было бы только с помощью логики контроллера последнего представления.