ios - 不同大小的 ScrollView 页面

标签 ios swift uiscrollview

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

这是我未完成的代码:

    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 是一个,应该是最大的。

最佳答案

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

不是将 feedbackView 添加到您的 scrollView,而是添加另一个 UIScrollView 作为第 4 个 subview ,然后添加 feedbackView 作为那个 ScrollView 的 subview :

    // 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  

关于ios - 不同大小的 ScrollView 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44759382/

相关文章:

Flex 移动应用程序中的 iOS 7 操作栏外观

ios - 标签从 CollectionViewCell 中消失

ios - 如何为不同的 iOS 版本定义代码

ios - 根据 Swift 中的空值过滤数组

ios - 带有 UIScrollView 的纯自动布局

objective-c - UIScrollView 没有正确更新,随机显示空 View

iphone - 从另一个窗口中打开已经创建的窗口

arrays - 快速将 PFObject 数组转换为自定义 PFSubclass

swift - 使用 ObjectIdentifier() 和 '===' 运算符的区别

ios - UIScrollView 添加顶部空白