我已在代码的简单观点,即应该是不言而喻的,并且可能帮助你。它概述了为使滚动视图正常工作所需的所有步骤。
如果有什么不清楚的地方,请随时发表评论。
import UIKit
class TutorialView: UIView {
lazy var sv: UIScrollView = {
let object = UIScrollView()
object.backgroundColor = UIColor.whiteColor()
object.translatesAutoresizingMaskIntoConstraints = false
return object
}()
lazy var tutorialPageOne: UIView = {
let object = UIView(frame: UIScreen.mainScreen().bounds)
object.translatesAutoresizingMaskIntoConstraints = false
object.backgroundColor = UIColor.cyanColor()
return object
}()
lazy var tutorialPageTwo: UIView = {
let object = UIView(frame: UIScreen.mainScreen().bounds)
object.translatesAutoresizingMaskIntoConstraints = false
object.backgroundColor = UIColor.lightGrayColor()
return object
}()
lazy var tutorialPageThree: UIView = {
let object = UIView(frame: UIScreen.mainScreen().bounds)
object.translatesAutoresizingMaskIntoConstraints = false
object.backgroundColor = UIColor.redColor()
return object
}()
override init(frame: CGRect) {
super.init(frame: frame)
self.addSubview(self.sv)
self.sv.addSubview(self.tutorialPageOne)
self.sv.addSubview(self.tutorialPageTwo)
self.sv.addSubview(self.tutorialPageThree)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
let vc = nextResponder() as? UIViewController
let mainSreenWidth = UIScreen.mainScreen().bounds.size.width
let mainScreenHeight = UIScreen.mainScreen().bounds.size.height
NSLayoutConstraint.activateConstraints([
self.sv.topAnchor.constraintEqualToAnchor(vc?.topLayoutGuide.bottomAnchor),
self.sv.leadingAnchor.constraintEqualToAnchor(self.leadingAnchor),
self.sv.bottomAnchor.constraintEqualToAnchor(vc?.bottomLayoutGuide.topAnchor),
self.sv.trailingAnchor.constraintEqualToAnchor(self.trailingAnchor)
])
NSLayoutConstraint.activateConstraints([
self.tutorialPageOne.widthAnchor.constraintEqualToConstant(mainSreenWidth),
self.tutorialPageOne.heightAnchor.constraintEqualToConstant(mainScreenHeight),
self.tutorialPageOne.topAnchor.constraintEqualToAnchor(self.sv.topAnchor),
self.tutorialPageOne.leadingAnchor.constraintEqualToAnchor(self.sv.leadingAnchor),
self.tutorialPageOne.bottomAnchor.constraintEqualToAnchor(self.sv.bottomAnchor)
])
NSLayoutConstraint.activateConstraints([
self.tutorialPageTwo.widthAnchor.constraintEqualToConstant(mainSreenWidth),
self.tutorialPageTwo.heightAnchor.constraintEqualToConstant(mainScreenHeight),
self.tutorialPageTwo.topAnchor.constraintEqualToAnchor(self.sv.topAnchor),
self.tutorialPageTwo.leadingAnchor.constraintEqualToAnchor(self.tutorialPageOne.trailingAnchor),
self.tutorialPageTwo.bottomAnchor.constraintEqualToAnchor(self.sv.bottomAnchor)
])
NSLayoutConstraint.activateConstraints([
self.tutorialPageThree.widthAnchor.constraintEqualToConstant(mainSreenWidth),
self.tutorialPageThree.heightAnchor.constraintEqualToConstant(mainScreenHeight),
self.tutorialPageThree.topAnchor.constraintEqualToAnchor(self.sv.topAnchor),
self.tutorialPageThree.leadingAnchor.constraintEqualToAnchor(self.tutorialPageTwo.trailingAnchor),
self.tutorialPageThree.bottomAnchor.constraintEqualToAnchor(self.sv.bottomAnchor),
self.tutorialPageThree.trailingAnchor.constraintEqualToAnchor(self.sv.trailingAnchor)
])
}
}
您可以加入约束问题截图?......还告诉滚动视图的大小和它的子视图 – sanman
添加的约束截图。你是什么意思的大小?我正在使用纵向尺寸类中的所有iPhone,并填充视图。 – m1234
我之前并不清楚...我想知道你为底部约束设置了什么值。将它设置为零。通过尺寸我的意思是x,y和高度,宽度。确保contentview的高度大于scrollview.for试验只创建高度为100和contentview的卷轴与高度400与一些按钮结束。您添加的约束是正确的,只需将底部一个设置为零。希望它有帮助:) – sanman