Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不同大小的scrollview页面_Ios_Swift_Uiscrollview - Fatal编程技术网

Ios 不同大小的scrollview页面

Ios 不同大小的scrollview页面,ios,swift,uiscrollview,Ios,Swift,Uiscrollview,我喜欢将我的UIScrollView中的一个页面设置为比其他页面大。最后一页的大小应该与整个视图的大小相同,这可能吗 这是我未完成的代码: self.scrollView.frame = CGRect(x: 0, y: 0, width: self.scrollView.frame.width, height: self.scrollView.frame.height) let scrollviewHeight = self.scrollView.frame.height

我喜欢将我的
UIScrollView
中的一个页面设置为比其他页面大。最后一页的大小应该与整个视图的大小相同,这可能吗

这是我未完成的代码:

    self.scrollView.frame = CGRect(x: 0, y: 0, width: self.scrollView.frame.width, height: self.scrollView.frame.height)
    let scrollviewHeight = self.scrollView.frame.height
    let scrollviewWidth = self.scrollView.frame.width

    let viewHeight = self.view.frame.height
    let viewWidth = self.view.frame.width

    let imgOne = UIImageView(frame: CGRect(x: 0, y: 0, width: scrollviewWidth, height: scrollviewHeight))
    let imgTwo = UIImageView(frame: CGRect(x: scrollviewWidth, y: 0, width: scrollviewWidth, height: scrollviewHeight))
    let imgTree = UIImageView(frame: CGRect(x: scrollviewWidth*2, y: 0, width: scrollviewWidth, height: scrollviewHeight))
    let feedbackView = UIView(frame: CGRect(x: scrollviewWidth*3, y: 0, width: viewWidth, height: viewHeight))

    imgOne.image = UIImage(named: "preview1")
    imgTwo.image = UIImage(named: "preview2")
    imgTree.image = UIImage(named: "preview3")

    self.scrollView.addSubview(imgOne)
    self.scrollView.addSubview(imgTwo)
    self.scrollView.addSubview(imgTree)
    self.scrollView.addSubview(feedbackView)

    self.addChildFeedBack(feedbackView: feedbackView)

    self.scrollView.contentSize = CGSize(width: self.scrollView.frame.width * 4, height: self.scrollView.frame.height)
    self.scrollView.isPagingEnabled = true

反馈视图应该是最大的。

我不知道这是否会给你想要的结果类型,但是要尝试一下

不要将
feedbackView
添加到
scrollView
,而是添加另一个
UIScrollView
作为第四个子视图,然后添加
feedbackView
作为该滚动视图的子视图:

    // your original setup code
    self.scrollView.frame = CGRect(x: 0, y: 0, width: self.scrollView.frame.width, height: self.scrollView.frame.height)
    let scrollviewHeight = self.scrollView.frame.height
    let scrollviewWidth = self.scrollView.frame.width

    let viewHeight = self.view.frame.height
    let viewWidth = self.view.frame.width

    let imgOne = UIImageView(frame: CGRect(x: 0, y: 0, width: scrollviewWidth, height: scrollviewHeight))
    let imgTwo = UIImageView(frame: CGRect(x: scrollviewWidth, y: 0, width: scrollviewWidth, height: scrollviewHeight))
    let imgTree = UIImageView(frame: CGRect(x: scrollviewWidth*2, y: 0, width: scrollviewWidth, height: scrollviewHeight))
    let feedbackView = UIView(frame: CGRect(x: scrollviewWidth*3, y: 0, width: viewWidth, height: viewHeight))

    imgOne.image = UIImage(named: "preview1")
    imgTwo.image = UIImage(named: "preview2")
    imgTree.image = UIImage(named: "preview3")

    self.scrollView.addSubview(imgOne)
    self.scrollView.addSubview(imgTwo)
    self.scrollView.addSubview(imgTree)

    // don't add feedbackView to scrollView
    // self.scrollView.addSubview(feedbackView)

    // instead, create another scroll view, 
    //    add feedbackView to that scroll view, 
    //    and add that scroll view as the 4th "page" in scrollView

    let fbScrollView = UIScrollView(frame: CGRect(x: scrollviewWidth*3, y: 0, width: scrollviewWidth, height: scrollviewHeight))

    // just so we can see where it is during development
    fbScrollView.backgroundColor = .purple

    // feedbackView will now be in its own scroll view, so
    // set its origin to 0,0
    feedbackView.frame.origin = CGPoint.zero

    fbScrollView.addSubview(feedbackView)
    fbScrollView.contentSize = feedbackView.frame.size

    // add the new scroll view to the "paging" scrollView
    self.scrollView.addSubview(fbScrollView)

    // and the rest of your setup
    self.addChildFeedBack(feedbackView: feedbackView)

    self.scrollView.contentSize = CGSize(width: self.scrollView.frame.width * 4, height: self.scrollView.frame.height)
    self.scrollView.isPagingEnabled = true  

不太清楚你在问什么。。。你试过这个吗?如果是的话,它有效吗?如果是,你在问什么?如果它不起作用,怎么了?如果你还没试过,那么。。。试一下,看看会发生什么。我像上面的代码一样试过,但没有成功。这样,反馈视图(应该与视图大小相同)的大小与完整视图相同,但在滚动视图中。所以它不适合。好-您正在启用scrollView的“分页”。这意味着它将自动使用与自身大小相同的“页面”。如果您希望第四个视图更大,则需要“可滚动”。一个选项是观察
scrollViewDidScroll
,检测何时到达
反馈视图,然后禁用分页。当然,这将允许用户“滑回”第三视图。。。那么,您希望结果如何运行?您希望用户体验是什么?