我的水平滚动视图不起作用
Posted
技术标签:
【中文标题】我的水平滚动视图不起作用【英文标题】:My horizontal scrollview is not working 【发布时间】:2018-07-05 16:17:00 【问题描述】:我在我的应用程序中的视图中添加了一个滚动视图,该视图是从选项卡控制器中选择的,因此它是一个容器而不是 UIViewController,它被声明如下
class HomeViewController: Container, UIScrollViewDelegate ..
我在情节提要中添加了滚动视图并向其中添加了所有组件,我已经从情节提要中分配了委托,并将此代码放在我的 ViewController 中
scrollview.contentSize = CGSize(width:1048, height:scrollview.frame.height)
scrollview.delegate = self
这就是我的 ScrollView 在我的故事板中的样子,你可以看到 scrollview 是我的 UIScrollView,然后我添加了一个 UIView viewScroll,然后向 viewScroll 添加了四个视图(View1、View2、View3 和 View4),scrollview 的大小为375x340 和 viewScroll 设置为 1048x340
当我运行应用程序时,它不会滚动。由于它不是 UIViewController,我是否需要以不同的方式处理这个问题,或者我还遗漏了什么?
【问题讨论】:
请显示您的代码.. 特别是当您设置视图大小等时 你是否设置了滚动视图的内容大小。还要检查是否启用了滚动 【参考方案1】:我已经在故事板中添加了滚动视图,并将宽度设置为 1050,高度设置为 330
您应该将滚动视图的宽度和高度设置为最多与其包含视图一样大。您需要设置为 1050 和 330 的是滚动视图的 contentSize - scrollView 只有在其 contentSize 大于其边界时才可滚动。
如果您使用 Interface Builder 设置滚动视图,则需要为其子边缘添加约束。例如,在您的情况下,您必须在 View Scroll
视图中添加前导、尾随、顶部和底部约束。选择它并在界面生成器中添加以下约束:
之后会有这样的东西:
当您向UIScrollView
s 子视图添加边缘约束时,您是在暗示滚动视图的内容大小。如果滚动视图知道它的内容大小并且它大于滚动视图的边界,那么您就可以进行滚动了。
【讨论】:
感谢您的帮助,丹,我真的很感激。我已将情节提要中的滚动视图设置为 375x325,并将此代码添加到视图控制器 viewDidLoad() scrollview.contentSize = CGSize(width: 1050, height: 325) 但它仍然不起作用。我错过了一些东西,所以任何帮助将不胜感激 @user616076 请告诉我们如何将内容添加到滚动视图中。 我已经修改了我上面的原帖,请告诉我你的想法 @user616076 您是否将View Scroll
边缘约束设置为Scroll View
?比如leading
前者的anchor到后者的同一个anchor?
不,我没有,您能否详细说明一下,因为这很可能是我所缺少的以上是关于我的水平滚动视图不起作用的主要内容,如果未能解决你的问题,请参考以下文章
ios 8 - 水平滚动视图中的按钮拦截平移事件 - 滚动不起作用
堆栈小部件内的列表视图不起作用(滚动方向:Axis.vertical)