0

我正在创建一个非常简单的详细视图,顶部有几张用户可以翻阅的图片,底部有一些关于项目名称的详细信息。但是我的滚动视图没有分页到正确的位置,如下所示:

在此处输入图像描述

我的滚动视图的框架及其子视图的框架设置如下:

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)


}

有人对我如何适应这个有任何建议吗?我是否错误地实现了我的滚动视图?

4

2 回答 2

0

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

于 2016-06-10T13:59:58.007 回答
0

问题是您尝试访问功能self.view.frameviewDidLoad()在它调用视图的那一刻还没有正确布局。视图框架的大小与您在情节提要中指定的大小相同,可能是 {0, 0, 600, 600}。

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

于 2016-06-10T13:34:51.553 回答