我正在尝试执行类似于我正在添加3个视图的分页类型的水平滚动视图。我把滚动视图放在我的故事板上面的UIView(myView)&有限制。以下是我的约束和我的相同代码 -
ScrollView约束
我的相同代码 -
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var contentView: UIView!
override func viewDidLoad()
{
super.viewDidLoad()
scrollView.frame = CGRectMake(0, 0, myView.frame.width, myView.frame.height)
let view1 = UIView(frame: CGRectMake(0, 0, scrollView.frame.width, scrollView.frame.height))
view1.backgroundColor = UIColor.blackColor()
let view2 = UIView(frame: CGRectMake(scrollView.frame.width, 0, scrollView.frame.width, scrollView.frame.height))
view2.backgroundColor = UIColor.redColor()
let view3 = UIView(frame: CGRectMake(scrollView.frame.width*2, 0, scrollView.frame.width, scrollView.frame.height))
view3.backgroundColor = UIColor.whiteColor()
self.scrollView.addSubview(view1)
self.scrollView.addSubview(view2)
self.scrollView.addSubview(view3)
scrollView.contentSize = CGSizeMake(self.scrollView.frame.width*3, scrollView.frame.height)
// Do any additional setup after loading the view.
}
我的问题 -
1)当我在较小的屏幕中运行时,滚动视图会浮动。
2)我的view1,view2,view3宽度与 myView 的宽度不同。由于myView使用(0,0,0,0)固定到视图,因此视图“view1,view2,view3”应具有宽度& myView的高度,其高度应等于(mainView - TopView)&宽度为mainView。
请帮忙,因为我非常需要这个解决方案而且我无法弄明白该怎么办?感谢。
答案 0 :(得分:0)
您对MyView使用约束,因此您应该对其他视图使用约束。使用制图在运行时制作约束的最简单方法 https://github.com/robb/Cartography 不要忘记在故事板中为scrollview设置高度约束。
在你的viewDidLoad之后需要写这样的东西:
let views = [UIView(), UIView(), UIView()]
views.forEach {
self.scrollView.addSubview($0)
constrain($0) { view1 in
view1.left == view1.superview!.left
view1.right == view1.superview!.right
view1.height == view1.superview!.height
}
}
constrain(views[0], views[1], views[2]) { view1, view2, view3 in
view1.top == view1.superview!.top
view2.top == view1.bottom
view3.top == view2.bottom
view3.bottom == view3.superview!.bottom
}