【问题标题】:Can't add UIContainerView to UIScrollView无法将 UIContainerView 添加到 UIScrollView
【发布时间】:2017-06-29 11:08:55
【问题描述】:

我在故事板中添加了一个 UIScrollView,引用为:

@IBOutlet weak private var myScrollView: UIScrollView!

我想添加一个 UIViewController 所以需要一个容器视图。

在第一个实例中,我会添加一个带有黑色背景的简单 UIView(以查看它),因此将其添加到 ViewDidLoad:

let containerView = UIView()
    containerView.frame = CGRect(x: 50, y: 150, width: 200, height: 200)
    containerView.backgroundColor = UIColor.black
    myScrollView.addSubview(containerView) 

然后……什么都没有。

四处寻找我发现可以使用的解决方案

self.view.addSubview(myScrollView)

但是 1. myScrollView 肯定已经添加到视图中了吗? 和 2. 我无法在 myScrollView 中滚动新视图

谁能帮我克服这个最初的障碍?

【问题讨论】:

    标签: ios swift uiscrollview


    【解决方案1】:

    为了滚动内容大小必须大于框架大小。

    // If the scroll view is not showing, check its frame
    scrollView.frame = CGRect(x: 0, y: 318, width: 375, height: 248)
    // Content size must be greater than frame size
    scrollView.contentSize = CGSize(width: 400, height: 500)
    
    let containerView = UIView()
    containerView.frame = CGRect(x: 50, y: 150, width: 200, height: 200)
    containerView.backgroundColor = UIColor.black
    scrollView.addSubview(containerView)
    

    【讨论】:

      【解决方案2】:

      您的代码对我来说看起来不错。这是我自己运行时的样子。

      回答您的问题

      1. 将滚动视图的背景设置为另一种颜色,就像我正在做的那样。然后你就可以弄清楚出了什么问题。您必须将容器视图添加到滚动视图,而不是 self.view,它是视图控制器。如果您添加到self.View,您的容器视图将被固定到您的视图控制器,并且不会随着滚动视图滚动。它会覆盖滚动视图

      2. 如果内容大小小于视图大小,则滚动视图无法滚动。也就是说,默认情况下它太短而无法滚动。因此,只需通过此代码使其更高

        scrollView.contentSize = CGSize(width: scrollView.contentSize.width, height: 2000)

      【讨论】:

        猜你喜欢
        • 2016-02-26
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        • 1970-01-01
        • 1970-01-01
        • 2015-06-29
        • 2017-12-19
        • 2023-03-28
        相关资源
        最近更新 更多