ScrollView不会在iOS中滚动

ScrollView不会在iOS中滚动,ios,swift,uiscrollview,Ios,Swift,Uiscrollview,我想允许用户向左或向右滚动,但只有一个屏幕远 // // MainViewController.swift // Calendar // // Created by Andy on 7/22/17. // Copyright © 2017 Andy. All rights reserved. // import UIKit class MainViewController: UIViewController, UIScrollViewDelegate { @IBOutle

我想允许用户向左或向右滚动,但只有一个屏幕远

//
//  MainViewController.swift
//  Calendar
//
//  Created by Andy on 7/22/17.
//  Copyright © 2017 Andy. All rights reserved.
//

import UIKit

class MainViewController: UIViewController, UIScrollViewDelegate {


    @IBOutlet weak var ScrollView: UIScrollView!{
        didSet{
            ScrollView.delegate = self
            ScrollView.contentSize = CGSize(width: ScrollView.frame.width * 3, height: ScrollView.frame.height)
        }
    }

    @IBOutlet weak var center: UIView!
    @IBOutlet weak var left: UIView!
    @IBOutlet weak var right: UIView!


    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }



    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let destination = segue.destination as? ReusableViewController {
            if let identifier = segue.identifier{
                destination.currentYearOffSet = 0
                destination.currentMonthOffSet = 0
                switch identifier {
                case "center":
                    destination.position = .center
                case "left":
                    destination.position = .left
                case "right":
                    destination.position = .right
                default:
                    fatalError("Unexpected Segue Identifier")
                }
            }
        }
    }
}
这个控制器只做滚动工作。在scrollview中有三个由其他控制器管理的ContainerView。但这根本不起作用

为了解决这个问题,我做了以下几件事,但没有成功:1。检查scrollView的内容大小。2.连接控制器和三个ContainerView。3.设置scrollView委托,但我还没有实现任何方法。(也许这就是原因,但我不知道要实现什么)

另外,当控制器对这三个ContainerView不做任何操作时,我是否需要连接它们

编辑:我删除了:1。内容大小2。UIScrollViewDelegate 3。三个集装箱新闻的出口。这确实使我的代码变得更好,但scrollView仍然无法滚动


EDIT2:我添加了一个视图,它的大小正好是我希望scrollView.contentSize作为scrollView的直接子视图的大小。内容高度似乎得到了解决,因为它只是说内容宽度是模糊的。它希望向我添加的视图添加前导和尾随约束,但我希望它在scrollView中水平居中。现在,我需要设置前导和尾随约束,让autoLayout知道contentWidth。如何根据superview的宽度设置前导偏移和尾随偏移,或者我应该采取其他措施来解决此问题?

您不需要这样设置:-

@IBOutlet weak var ScrollView: UIScrollView!{
        didSet{
            ScrollView.delegate = self
            ScrollView.contentSize = CGSize(width: ScrollView.frame.width * 3, height: ScrollView.frame.height)
        }
    }
刚刚有了outlet
@IBOutlet弱var ScrollView:UIScrollView和固定适当约束(前导、尾随、顶部、底部、等宽(应等于或大于to)、等高(应等于或大于to)

用于水平滚动 若您希望水平滚动,然后还固定宽度约束,这是避免自动布局错误所必需的,但内部占位符选中在生成时删除

用于垂直滚动 如果要垂直滚动,则还需要固定高度约束,这是避免自动布局错误所必需的 但内部占位符选中了在生成时删除


注意:-根据您的要求,您可以同时使用这两种或任何一种方式。

非常感谢您的回复。但我真的很抱歉,我认为我不理解您的意思。您的意思是我不需要设置scrollView委托和contentSize,还是我应该将它们设置在其他地方?对于水平滚动,您的意思是我可以在情节提要中这样做吗?也许我的问题在于故事板文件?是的,你可以在故事板内部进行操作,而无需执行任何代码。是的,你不需要设置scrollView委派和contentSize。我删除了1.contentSize 2.delegate 3。三个ContainerView的出口。但是现在没有任何变化。我想知道我是否需要在故事板中做一些额外的事情来让它工作。另外,谢谢你的回复。