我想做一些简单的事情,但Apple喜欢为开发人员过度复杂化(非常具有讽刺意味)。我想创建一个可垂直滚动的屏幕。基本上我可以滚动的更长的屏幕。问题是它要么不滚动,要么内容(用于演示目的的标签)固定在屏幕上(例如居中)。
我查看了多个教程,但仍然没有完全理解它,因为内部工作没有完全解释。
因此,根据我的理解,它如下:
UIScrollView
放在主UIView
UIScrollView
的边距设置为0-0-0-0 UIView
UIScrollView
UIView
和UIScrollView
UIScrollView
和内容UIView
的高度&宽度(在我的情况下,我选择1000作为高度,屏幕宽度选择宽度,因为我只需要垂直滚动)UIScrollView.contentSize
设置为大于屏幕的内容UIView
那么当我不应该忘记或添加什么?如果有人能够快速解释如何做到这一点,请这样做。
答案 0 :(得分:3)
这很多都是错的:
因此,根据我的理解,它如下:
您将UIScrollView置于主UIView
之上您将UIScrollView的边距设置为0-0-0-0
您将内容视图UIView放在UIScrollView
中你将它的边距设置为与主UIView和UIScrollView相关的0-0-0-0
您可以设置UIScrollView和内容UIView的高度和宽度。宽度(在我的情况下,我选择1000作为高度,屏幕宽度选择宽度,因为我只需要垂直滚动)
您将UIScrollView.contentSize设置为大于屏幕
的值添加内容并将其与内容UIView对齐
有各种策略可以在自动布局下滚动视图。 “内容视图”策略非常有效,而且非常方便,尽管它不是唯一可行的策略。既然你似乎意味着要使用它,那就让我们使用它:
使用约束将滚动视图的顶部,底部,左侧和右侧固定到主视图。通常这些约束将具有零常数,但没有法律要求这一点。
为滚动视图提供一个直接的子视图,即“内容视图”。使用约束将内容视图的顶部,底部,左侧和右侧固定到滚动视图。这些约束必须具有零常数。
提供内容视图的高度和宽度约束。绝对设置它们的常量值。在实验上,使用大数字。正如您所说,零宽度和1000高度将使您在小于1000高度的屏幕上进行垂直滚动。
现在停止。不要添加任何更多约束,也不要以任何其他方式设置滚动视图的内容大小。您已完成。滚动视图现在是可滚动的,即使其中没有任何内容可见 - 只要高度或宽度约束常量值大于运行时滚动视图的实际高度或宽度。您可以运行该项目并查看这是真的。
您现在可以自由填充内容视图。
答案 1 :(得分:0)
您不必在滚动视图中放置UIView。您可以添加所需的任何对象,并在scrollview中设置对象框架。可滚动区域由UIScrollView的contentSize属性设置。
您需要确保做的一些事情:
1)将<UIScrollViewDelegate>
添加到.h文件
2)设置scrollview.delegate = self;
3)设置scrollview.contentsize = CGSizeMake(大于屏幕的东西)
4)确保使用scrollview.scrollEnabled = YES;