У меня возникают проблемы с масштабированием изображений на устройствах разных размеров. Используя контроль страницы, я пытаюсь создать что-то вроде горизонтального альбома с прокруткой фотографий. Я почти уверен, что я не устанавливаю ширину и высоту прямо для моего 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)
}