【发布时间】:2017-06-07 20:49:20
【问题描述】:
如下所示,我有一个滚动视图,我想将它添加到 UIViewControllers 根视图中。当我将它限制在顶部、右侧、底部和左侧时,我希望看到红色占据整个屏幕。这显然有效,但我想在滚动视图中添加一个子视图来包装所有子视图。我该怎么做呢?
我已经添加了视图并设置了相同的约束,但这次它们是从包装视图设置到 UIScrollView 的边界,并且蓝色背景颜色不会显示在任何地方。如果这是一个坏主意,也请随时指出,但我认为我可以将它限制在底部,它会根据需要自动扩展滚动视图内容大小。当我在没有包装器的情况下在滚动视图中拥有所有子视图并且最后一个视图会扩展内容大小时,这似乎可行。
scrollView = UIScrollView(frame: view.bounds)
scrollView?.showsVerticalScrollIndicator = true
scrollView?.backgroundColor = .red
scrollView?.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(scrollView!)
scrollView?.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
scrollView?.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
scrollView?.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
scrollView?.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
//setup wrapper view
let subviewWrapper = UIView()
subviewWrapper.translatesAutoresizingMaskIntoConstraints = false
scrollView?.addSubview(subviewWrapper)
subviewWrapper.backgroundColor = .blue
subviewWrapper.topAnchor.constraint(equalTo: (scrollView?.topAnchor)!).isActive = true
subviewWrapper.leftAnchor.constraint(equalTo: (scrollView?.leftAnchor)!).isActive = true
subviewWrapper.rightAnchor.constraint(equalTo: (scrollView?.rightAnchor)!).isActive = true
subviewWrapper.bottomAnchor.constraint(equalTo: (scrollView?.bottomAnchor)!).isActive = true
【问题讨论】:
标签: ios swift uiscrollview ios-autolayout