UIScrollView没有分页正确的距离

时间:2016-06-10 13:25:00

标签: ios uiscrollview scroll-paging

我正在创建一个非常简单的详细视图,其中包含一些用户可以在顶部翻页的图片,底部有项目名称的一些详细信息。但是我的滚动视图没有翻页到正确的位置,因为:

enter image description here

我的scrollview框架&其子视图的框架设置如下:

override func viewDidLoad() {
    super.viewDidLoad()

    self.pictures.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height / CGFloat(2))
    self.pictures.clipsToBounds = false
    let width = pictures.frame.width
    let height = pictures.frame.height



    /*

    let view1 = UIView(frame: CGRectMake(pictures.frame.origin.x, 0, scrollViewWidth, scrollViewHeight))
    let view2 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth, 0, scrollViewWidth, scrollViewHeight))
    let view3 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth * 2, 0, scrollViewWidth, scrollViewHeight))
    let view4 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth * 3, 0, scrollViewWidth, scrollViewHeight))

    */

    for index in 0...2 {
        let frame = CGRectMake(width * CGFloat(index), 0, width, height)
        let view = UIView(frame: frame)
        views.append(view)
        pictures.addSubview(view)
    }

    views[0].backgroundColor = UIColor.redColor()
    views[1].backgroundColor = UIColor.blueColor()
    views[2].backgroundColor = UIColor.orangeColor()


    pictures.delegate = self
    pictures.contentSize = CGSizeMake(width * CGFloat(views.count), height)


}

有没有人对我如何适应这个有任何建议?我是否错误地实现了我的scrollview?

2 个答案:

答案 0 :(得分:0)

问题是您是否尝试访问self.view.frame函数中的viewDidLoad()。在它调用视图的那一刻还没有正确布局。视图的框架大小与您在storyboard中指定的大小相同,可能是{0,0,600,600}。

解决方案:您可以将页面初始化代码设置为viewWillAppear,或者您可以考虑使用自动布局而不是直接操作框架。

答案 1 :(得分:0)

您必须在宽度中添加+20,因为在scrollView中,两个页面之间有一些空间可用。 所以加20它可以解决你的问题。