UIScrollView и контроль страницы для изображений.Изображения не масштабируются до размера устройства. - PullRequest
0 голосов
/ 14 ноября 2018

У меня возникают проблемы с масштабированием изображений на устройствах разных размеров. Используя контроль страницы, я пытаюсь создать что-то вроде горизонтального альбома с прокруткой фотографий. Я почти уверен, что я не устанавливаю ширину и высоту прямо для моего UIScrollView, потому что изображения и будут только соответствовать ширине и высоте UIscrollView в моей раскадровке. UIscrollView не имеет ограничений в раскадровке, потому что он нуждается в динамике и соответствует количеству изображений.

Это пример того, как это должно выглядеть на всех устройствах. Это на iPhone 8 Plus

Это то, что происходит на iPad 12,9 дюйма. Проблема заключается в том, что изображение не отображается на всю ширину экрана, а масштабируется по высоте, а точки управления страницей должны находиться в центре

Вот код, который я имею для того, что я пытаюсь сделать:

    @IBOutlet weak var imageScrollView: UIScrollView!
    @IBOutlet weak var pageControl: UIPageControl!

    // Create array to hold images and frame for the images
    var buildingImages: [String] = []
    var frame = CGRect(x: 0, y: 0, width: 0, height: 0)

    // Get index for the number of pages for page control

    pageControl.numberOfPages=buildingImages.count
    for index in 0..<buildingImages.count{

        let xPosition=self.view.frame.width * CGFloat(index)
        frame.origin.x=xPosition

        frame.size=imageScrollView.frame.size

        // Initialize an image view and set it to an image, add image on top of scroll view
        let buildingImageView=UIImageView(frame: frame)
        buildingImageView.image=UIImage(named: buildingImages[index])

        buildingImageView.pin_setImage(from: URL(string: buildingImages[index]))

        self.imageScrollView.addSubview(buildingImageView)
    }
    /*
    Set up content size of scroll view (get size of scroll view by
    the amount of images in the scroll view
    */

    imageScrollView.contentSize=CGSize(width: (imageScrollView.frame.size.width*CGFloat(buildingImages.count)), height: imageScrollView.frame.size.height)
    imageScrollView.delegate=self

    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    var pageNumber = scrollView.contentOffset.x/scrollView.frame.size.width
    pageControl.currentPage=Int(pageNumber)
}
...