class ViewController: UIViewController, UIScrollViewDelegate, UICollectionViewDelegate, UICollectionViewDataSource {
@IBOutlet weak var pageControl: UIPageControl!
@IBOutlet weak var scrollView: UIScrollView!
var images: [String] = ["promotion test 1", "promotion test 2", "promotion test 3", "promotion test 4", "promotion test 5", "promotion test 6"]
var frame = CGRect(x: 0, y: 0, width: 0, height: 0)
}
pageControl.numberOfPages = images.count
for index in 0..<images.count {
frame.origin.x = scrollView.frame.size.width * CGFloat(index)
frame.size = scrollView.frame.size
let imgView = UIImageView(frame: frame)
imgView.image = UIImage(named: images[index])
self.scrollView.addSubview(imgView)
}
scrollView.contentSize = CGSize(width: (scrollView.frame.size.width * CGFloat(images.count)), height: scrollView.frame.size.height)
scrollView.delegate = self
图像小于滚动视图。因此,当我看到滚动视图的第一页时,也可以在下一个滚动视图中看到图像的某些部分。我不知道要在我的代码中进行哪些更改。你能告诉我我应该改变什么吗?
答案 0 :(得分:0)
问题是您引用了诸如scrollView.frame
之类的值。如果在尚不知道滚动视图的帧的情况下执行此操作(例如,在viewDidLoad
中),将会得到错误的答案。将代码推迟到知道滚动视图的框架 的时间。
(也许更好,也许就是删除所有代码并改为使用UIPageViewController。它可以自动完成您在此处所做的所有操作,并且可能比您手动完成的要好得多。 “。)