Ios Swift-UIScrollView的约束问题(以编程方式)
我最近在viewcontroller中添加了一个scrollview。然而,这导致我的布局完全混乱 下面是一张图片 (我给UIScrollView提供了一个临时的红色背景,以显示它明显占据了整个屏幕) 现在。我有很多这样的观点。但为了简单起见,我将重点关注顶部的蓝色条,在我的应用程序中,它被称为“topBar” 首先,我在课堂上定义它Ios Swift-UIScrollView的约束问题(以编程方式),ios,swift,uiscrollview,autolayout,constraints,Ios,Swift,Uiscrollview,Autolayout,Constraints,我最近在viewcontroller中添加了一个scrollview。然而,这导致我的布局完全混乱 下面是一张图片 (我给UIScrollView提供了一个临时的红色背景,以显示它明显占据了整个屏幕) 现在。我有很多这样的观点。但为了简单起见,我将重点关注顶部的蓝色条,在我的应用程序中,它被称为“topBar” 首先,我在课堂上定义它 var topBar = UIView() 我删除自动调整大小,给它一个颜色,并将其添加到我的滚动视图 //----------------- topBar
var topBar = UIView()
我删除自动调整大小,给它一个颜色,并将其添加到我的滚动视图
//----------------- topBar ---------------//
topBar.setTranslatesAutoresizingMaskIntoConstraints(false)
topBar.backgroundColor = UIColor.formulaBlueColor()
self.scrollView.addSubview(topBar)
将其添加到我的视图词典:
var viewsDictionary = [ "topBar":topBar]
let metricsDictionary = ["topBarHeight":6]
将高度添加到my metricsDictionary:
var viewsDictionary = [ "topBar":topBar]
let metricsDictionary = ["topBarHeight":6]
在尺寸约束中设置高度
//sizing constraints
self.scrollView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:[topBar(topBarHeight)]", options: NSLayoutFormatOptions(0), metrics: metricsDictionary, views: viewsDictionary))
最后是不起作用的部分。我/试图/使其成为“滚动视图”的全宽
和我的垂直约束,把它放在顶部
// Vertical Constraints
self.scrollView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:|[topBar]", options: nil, metrics: nil, views: viewsDictionary))
至于我的scrollview(可能是它让我的布局头疼)
其设置如下:
作为课堂上的第一件事:
let scrollView = UIScrollView(frame: UIScreen.mainScreen().bounds)
我的viewDidLoad()中的第一件事
最后是我的viewDidLayoutSubviews
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
scrollView.frame = view.bounds
scrollView.contentSize = CGSize(width:2000, height: 5678)
}
^contentSize的宽度将更改为屏幕的宽度(我只需要垂直滚动)。但与我现在遇到的布局问题相比,这只是一个小问题
任何关于为什么所有东西都挤在一起的帮助都将不胜感激 我通过以下操作成功修复了它 在
viewdilayoutsubviews
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
scrollView.frame = view.bounds
scrollView.contentSize = CGSize(width:self.view.bounds.width, height: 5678)
}
而不是使视图等于scrollview,我必须使它成为它的子视图
我还必须创建scrollview的子视图,以使我的所有内容都能正确地处理约束
self.view.addSubview(scrollView)
scrollView.translatesAutoresizingMaskIntoConstraints = false
contentView.translatesAutoresizingMaskIntoConstraints = false
scrollView.addSubview(contentView)
我的所有其他对象都是“contentView”的子视图,而不是scrollview
//----------------- topBar ---------------//
topBar.setTranslatesAutoresizingMaskIntoConstraints(false)
topBar.backgroundColor = UIColor.formulaBlueColor()
self.scrollView.addSubview(topBar)