我在滚动视图中添加我的介绍屏幕。所以我只需要水平滚动。我为scrollview设置了约束(top,bottom.leading,trailing)。我添加了以下的子视图
for i in 0..<self.arrIntro.count{
let view = IntroScreenView.instanceFromNib()
let x = CGFloat(i) * self.scrollIntro.frame.size.width
view.frame = CGRect(x: x, y: 0, width: self.scrollIntro.frame.size.width, height: self.scrollIntro.frame.size.height)
print(view,self.scrollIntro)
view.imgIntro.image = UIImage(named: "image-1")//UIImage(contentsOfFile: self.arrIntro[i]["Link"] as! String)
print(self.arrIntro[i]["Link"] as! String)
self.scrollIntro.addSubview(view)
}
self.scrollIntro.contentSize = CGSize(width: (CGFloat(self.arrIntro.count) * self.scrollIntro.frame.size.width ) , height: self.scrollIntro.frame.size.height)
但是我的滚动视图是垂直滚动的一点。我该如何避免这种情况。任何自动布局问题?
答案 0 :(得分:0)
您未在视图中添加任何约束。为每个项添加高度和宽度约束,视图之间的约束以及从视图到滚动视图的约束。请注意,Su视图和滚动视图之间的约束将为您设置内容大小。
答案 1 :(得分:0)
当contentSize.height
大于scrollView
高度时,滚动视图会垂直滚动。
请确保您的contentSize.height
不大于scrollView.frame.size.height
。
我可以猜到的一个原因是,您可能正在设置contentSize
一个点,之后滚动视图的帧会发生变化。您应该在viewDidLayoutSubviews()
示例:此代码进行垂直滚动
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
scrollView.contentSize = CGSize(width: self.scrollView.bounds.width*5, height: self.scrollView.frame.height)
}
}
这不是
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet var scrollView: UIScrollView!
override func viewDidLayoutSubviews() {
scrollView.contentSize = CGSize(width: self.scrollView.bounds.width*5, height: self.scrollView.frame.height)
}
}