UIScrollview不会水平滚动

问题描述 投票:1回答:2

我有一个项目,我试图使用UIScrollView水平滚动,但是,我不能让它滚动。

scrollview是通过Interface Builder添加的,之后它在viewWillAppear()中设置,这就是我所做的:

let overview = CourseDetails(course: self.course, type: holes, frame: CGRect(x: 0, y: 0, width: 812, height: 100))
scrollView.addSubview(overview)
scrollView.contentSize = CGSize(width: 812, height: 100)
overview.frame.size.width = 812
scrollView.translatesAutoresizingMaskIntoConstraints = false

scrollview的内容视图宽度为812,而UIViews框架的宽度为345 ...

在整个scrollview场景中是否缺少一个步骤?

ios swift uiscrollview
2个回答
1
投票

你不需要设置content sizeUIScrollView。您可以在界面构建器中进行设置。

interface builder中执行以下步骤:

  1. 在视图层次结构中添加UIScrollView
  2. 添加UIView作为UIScrollView的子视图,这将是UIScrollView的内容视图。现在,您将添加要滚动的所有其他视图作为此subviewscontentView
  3. 现在为UIScrollView和它的内容view(UIView)设置约束。对于UIScrollView,设置Leading, Trailing ,Top and Bottom限制它的superView。对于contentViewUIScrollView,将leading, trailing, top and bottom约束引脚设置为UIScrollView. 现在是设置content sizeUIScrollView的棘手部分。为width设置heightcontentView约束。你必须设置widthheight等于UIScrollView。要设置这两个约束,在contentView上进行选择,然后控制+拖动到UIScrollView,然后选择相等的width和相等的height。 现在,如果要进行水平滚动,请将约束优先级设置为width的低(250);如果要进行垂直滚动,则将约束优先级设置为height

0
投票

我认为,CourseDetails视图生成会产生问题。我使用以下代码检查:

let overview = UIView.init(frame: CGRect(x: 0, y: 0, width: 812, height: 100))
overview.backgroundColor = UIColor.green
scrollView.addSubview(overview)
scrollView.contentSize = CGSize(width: overview.frame.size.width, height: 100)
scrollView.translatesAutoresizingMaskIntoConstraints = false

它正在发挥作用。请分享CourseDetails视图信息以解决此问题,否则很难跟踪。

请检查界面构建器滚动视图设置:

 1. Enable check mark for scrolling enabled [Scrolling Section]
 2. Enable check mark for user interaction enabled [View Section]
© www.soinside.com 2019 - 2024. All rights reserved.