UIScrollview不会水平滚动

时间:2017-12-19 02:06:40

标签: ios swift uiscrollview

我有一个项目,我正在尝试使用UIScrollView水平滚动,但我无法滚动。

通过Interface Builder添加了scrollview,然后在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场景中是否缺少一个步骤?

2 个答案:

答案 0 :(得分:1)

您无需设置content size的{​​{1}}。您可以在界面构建器中进行设置。

UIScrollView中执行以下步骤:

  1. 在视图层次结构中添加interface builder
  2. 添加UIScrollView作为UIView的子视图,该视图将是UIScrollView的内容视图。现在,您将要滚动的所有其他视图添加为此UIScrollView的{​​{1}}。
  3. 现在为subviews和内容contentView(UIView)设置约束。 UIScrollView设置view约束为UIScrollView。 对于Leading, Trailing ,Top and Bottom superView,将contentView约束引脚设置为UIScrollView

    现在是设置leading, trailing, top and bottom的{​​{1}}的棘手部分。为UIScrollView.设置content sizeUIScrollView约束。 您必须将widthheight设置为contentView。要设置这两个约束,请在width上进行选择,然后控制+拖动到height,然后选择相等UIScrollView并等于contentView

    如果您想要水平滚动,请将约束优先级设置为UIScrollView的低(250);如果您想要垂直滚动,则将约束优先级设置为width

答案 1 :(得分:0)

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

 1. Enable check mark for scrolling enabled [Scrolling Section]
 2. Enable check mark for user interaction enabled [View Section]

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

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

l5_error = np.linalg.norm(y-l5)