Как сделать так, чтобы мое изображение заполняло весь ScrollView? - PullRequest
0 голосов
/ 13 мая 2018

У меня есть массив изображений, и я хочу сделать горизонтальный слайдер изображений. Но изображение не всегда соответствует всему виду прокрутки. Вот мой код:

scrollView.delegate = self

scrollView.isPagingEnabled = true
scrollView.showsHorizontalScrollIndicator = false

for (index, imageView) in imagesArray.enumerated() {
    imageView.frame.size.height = scrollView.frame.size.height
    imageView.frame.size.width = scrollView.frame.size.width
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    scrollView.addSubview(imageView)
    imageView.frame.origin.x = CGFloat(index) * self.view.bounds.size.width
}
scrollView.contentSize.width = self.view.frame.width * CGFloat(imagesArray.count)

Я хочу, чтобы изображение заполнило всю область внутри черной рамки на изображении ниже.

enter image description here

Ответы [ 3 ]

0 голосов
/ 13 мая 2018

Я думаю, вам просто нужно изменить строку

imageView.contentMode = .scaleAspectFill

до

imageView.contentMode = .scaleAspectFit
0 голосов
/ 14 мая 2018

Возможно, это гораздо сложнее, чем вы хотите, но это видео Джаррода должно объяснить эффект, который вы хотите: https://www.youtube.com/watch?v=IUT0WByY7HI

0 голосов
/ 13 мая 2018

Вы должны установить contentSize

for (index, imageView) in imagesArray.enumerated()
{
    imageView.frame.size.height = scrollView.frame.size.height
    imageView.frame.size.width = self.view.frame.size.width
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    scrollView.addSubview(imageView)
    imageView.frame.origin.x = CGFloat(index) * self.view.bounds.size.width
}


scrollView.contentSize = CGSize.init(width: scrollView.frame.size.width * imagesArray.count, height: scrollView.frame.size.height)

см. Демонстрацию здесь scrollDemo

...