Swift 4 Scrollview 约束问题

Posted

技术标签:

【中文标题】Swift 4 Scrollview 约束问题【英文标题】:Swift 4 Scrollview Constraints Issue 【发布时间】:2017-12-05 22:08:13 【问题描述】:

我在 viewController 中添加了一个滚动视图并将其锚定到我的视图中,如下所示:

class MainContainer: UIViewController 

    let mainScrollView: UIScrollView = 
        let scrollView = UIScrollView()
        scrollView.backgroundColor = .lightGray
        scrollView.isPagingEnabled = true
        scrollView.showsHorizontalScrollIndicator = false
        scrollView.bounces = false
        scrollView.contentInsetAdjustmentBehavior = .never
        return scrollView
    ()

    override func viewDidLoad() 

        view.addSubview(mainScrollView)


        mainScrollView.anchor(top: view.topAnchor, left: view.leftAnchor, bottom: view.bottomAnchor, right: view.rightAnchor, topConstant: 0, leftConstant: 0, bottomConstant: 0, rightConstant: 0, widthConstant: 0, heightConstant: 0)

    

上面的代码效果很好。约束按预期工作 然后我尝试通过添加

向它附加一个视图

mainScrollView.addSubview(cameraView.view)

那是约束在我的滚动视图上表现得很奇怪的时候。由于某种原因,滚动视图的宽度和高度加倍。这是我的视图层次结构的屏幕截图,以说明我的问题

在图像中,我选择了滚动视图并右键单击“显示约束”,由于某种原因,它的宽度和高度增加了一倍。在添加视图控制器之前,约束条件很好。添加的视图控制器看起来不错,但滚动视图上的约束是混乱的。

【问题讨论】:

Scrollview.translateauto.... = false 感谢您的回答,但没有奏效。约束仍然很奇怪@HenShabat 【参考方案1】:

确保 cameraView.view 的 top 、 bottom 、leading 和 trailing 约束连接到滚动视图(超级视图),然后给 cameraView.view 一个高度和宽度,也不要忘记使 translateAutoresizing.. 等于 false 的 scrollview 。 . .

【讨论】:

以上是关于Swift 4 Scrollview 约束问题的主要内容,如果未能解决你的问题,请参考以下文章

Swift:ScrollView 不滚动(如何设置约束)?

Swift iOS以编程方式在导航栏下方设置scrollView约束

Swift:无效参数不满足:约束

ScrollView 在子视图 xcode 6 Swift 的顶部添加空间

嵌入在 UIScrollView (SWIFT) 中的 UIImageView 的约束问题

Swift 向 UIScrollView 子视图添加约束