我有一个ViewController。在它中,我将ScrollView与View(contentView)结合在一起。之后我从contentView拖到View并设置Equal Height。现在它滚动,但不完全。UIScrollView不会完全滚动
正如你看到有它继续TextView的下方,但它 不滚动。我该如何解决它?
我有一个ViewController。在它中,我将ScrollView与View(contentView)结合在一起。之后我从contentView拖到View并设置Equal Height。现在它滚动,但不完全。UIScrollView不会完全滚动
正如你看到有它继续TextView的下方,但它 不滚动。我该如何解决它?
您需要设置滚动视图的内容大小。使用下面的代码来做到这一点:
func viewDidLayoutSubviews()
{
super.viewDidLayoutSubviews()
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.contentView.frame.size.height);
}
它不帮助我。我必须删除我的约束 - 等高还是不?我删除它,它根本不滚动 –
@OrkhanAlizade对于contentView,您只需要将约束透视设置为滚动视图。顶部=底部=左=右= 0 –
是的,我做的完全一样 –
要使用Autolayout
与UIScrollView
是棘手的。
在你的代码必须通过计算的contentView
subviews
高度更新的高度限制为您内容查看,并且会自动更新contentSize
您ScrollView
,您可以通过所有子视图滚动。
欲了解更多信息,请使用Autolayout + UIScrollView您可以阅读this。
UIScrollView能够自动计算它的内容高度和宽度,但你需要帮助它。 要做到这一点,你需要:
contentView
(你的情况),以上海华盈的各方面(这是Scroll View
)。contentView
来计算它的大小。这是您的方法中的一个小错误。您已将contentView
的高度设置为等于View
的高度。所以基本上Scroll View
的contentSize.height与View
的高度相同。这对于动态内容而言并不是真正需要的。通常你想设置的contentView
等于View
的宽度的宽度,并且不设置contentView
的高度。相反,您希望将子视图contentView
绑定到他们的超级视图,以便他们的超级视图(contentView
)将自动计算其高度。
在你的情况我会绑定:
pizza.jpg
到左右上角上海华(附pizza.jpg
高度由内在影像尺寸设定);SAMPLE TITLE
标签 - 左右超视图;顶部到pizza.jpg
图片;Text View
- 左下角到superview;顶部至SAMPLE TITLE
标签;设定一个固定的高度。在这种情况下,contentView
将自行定义所需的高度。 Scroll View
将相应地设置它的contentSize。 你的屏幕将能够垂直滚动(应该是);)
根据this link(感谢this Matt's answer first)的UIScrollView与自动版式行为不同于其他视图。
scrollView的子视图从scrollView的contentView设置它们的约束,而不是直接滚动视图。这允许内容滚动。
所以:
它应该是这样的:
希望这有助于
读this (from Matt once again)进一步信息,请
是否设置了滚动型的contentsize? – Leo
@Leo no。我想自动完成,但不知道该怎么做。你可以帮我吗? –
由于他使用自动布局,因此不需要设置contentSize。你将contentView的高度设置为等于视图高度,为什么它应该滚动? –