Я пытаюсь создать очень простой UIScrollView
с несколькими изображениями, в которых включен пейджинг.UIImageViews не правильно масштабируется в UIScrollView с пейджингом
Однако я не видел, чтобы изображения были правильно изменены до пределов моего UIScrollView
. Изображения всегда больше границ, таким образом, возиться с моим пейджингом.
У меня есть UIScollView
и UIPageControl
в Interface Builder
и связать его в моем файле ViewController swift.
Вот мой viewDidLoad
метод (pageImages
определяется как var pageImages: [UIImage] = []
и pageViews
в var pageViews: [UIImageView?] = []
:
override func viewDidLoad() {
scrollView.delegate = self
scrollView.pagingEnabled = true
scrollView.scrollEnabled = true
scrollView.showsHorizontalScrollIndicator = false
scrollView.showsVerticalScrollIndicator = false
scrollView.bounces = true
scrollView.scrollsToTop = false
pageImages = [UIImage(named: "image1")!,
UIImage(named: "image2")!,
UIImage(named: "image3")!,
UIImage(named: "image4")!,
UIImage(named: "image5")!]
let pageCount = pageImages.count
pageControl.currentPage = 0
pageControl.numberOfPages = pageCount
for (var i=0; i<pageCount; i++) {
var xOrigin: CGFloat = CGFloat(i) * scrollView.bounds.size.width
let imageView: UIImageView = UIImageView(frame: CGRectMake(xOrigin, 0, scrollView.bounds.size.width, scrollView.bounds.size.height))
imageView.image = pageImages[i]
imageView.contentMode = UIViewContentMode.ScaleAspectFill
imageView.clipsToBounds = true
scrollView.addSubview(imageView)
}
let pagesScrollViewSize = scrollView.frame.size
scrollView.contentSize = CGSize(width: pagesScrollViewSize.width * CGFloat(pageImages.count),
height: pagesScrollViewSize.height)
}
Мой scrollViewDidScroll
метод заключается в следующем:
func scrollViewDidScroll(scrollView: UIScrollView) {
let pageWidth = self.scrollView.frame.size.width
let page = Int(floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1)
self.pageControl.currentPage = page
}
Может кто-нибудь обнаружить свою ошибку ли я установить contentMode
, возможно, в viewWillAppear
или viewDidAppear
?