Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift-UIScrollView的约束问题(以编程方式)_Ios_Swift_Uiscrollview_Autolayout_Constraints - Fatal编程技术网

Ios Swift-UIScrollView的约束问题(以编程方式)

Ios Swift-UIScrollView的约束问题(以编程方式),ios,swift,uiscrollview,autolayout,constraints,Ios,Swift,Uiscrollview,Autolayout,Constraints,我最近在viewcontroller中添加了一个scrollview。然而,这导致我的布局完全混乱 下面是一张图片 (我给UIScrollView提供了一个临时的红色背景,以显示它明显占据了整个屏幕) 现在。我有很多这样的观点。但为了简单起见,我将重点关注顶部的蓝色条,在我的应用程序中,它被称为“topBar” 首先,我在课堂上定义它 var topBar = UIView() 我删除自动调整大小,给它一个颜色,并将其添加到我的滚动视图 //----------------- topBar

我最近在viewcontroller中添加了一个scrollview。然而,这导致我的布局完全混乱

下面是一张图片

(我给UIScrollView提供了一个临时的红色背景,以显示它明显占据了整个屏幕)

现在。我有很多这样的观点。但为了简单起见,我将重点关注顶部的蓝色条,在我的应用程序中,它被称为“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)