UIScrollview不会水平滚动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIScrollview不会水平滚动相关的知识,希望对你有一定的参考价值。
我有一个项目,我试图使用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场景中是否缺少一个步骤?
答案
你不需要设置content size
的UIScrollView
。您可以在界面构建器中进行设置。
在interface builder
中执行以下步骤:
- 在视图层次结构中添加
UIScrollView
- 添加
UIView
作为UIScrollView
的子视图,这将是UIScrollView
的内容视图。现在,您将添加要滚动的所有其他视图作为此subviews
的contentView
。 - 现在为
UIScrollView
和它的内容view
(UIView)设置约束。对于UIScrollView
,设置Leading, Trailing ,Top and Bottom
限制它的superView
。对于contentView
的UIScrollView
,将leading, trailing, top and bottom
约束引脚设置为UIScrollView.
现在是设置content size
的UIScrollView
的棘手部分。为width
设置height
和contentView
约束。你必须设置width
和height
等于UIScrollView
。要设置这两个约束,在contentView
上进行选择,然后控制+拖动到UIScrollView
,然后选择相等的width
和相等的height
。 现在,如果要进行水平滚动,请将约束优先级设置为width
的低(250);如果要进行垂直滚动,则将约束优先级设置为height
。
另一答案
我认为,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]
以上是关于UIScrollview不会水平滚动的主要内容,如果未能解决你的问题,请参考以下文章
使用按钮检测水平滚动 UIScrollView 上的垂直滚动
带有 UIButtons 的 UIScrollView - 当按钮开始触摸时,滚动视图不会滚动