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的出口。但是现在没有任何变化。我想知道我是否需要在故事板中做一些额外的事情来让它工作。另外,谢谢你的回复。