'present modally' 视图控制器中的滚动视图不工作
Scrollview in 'present modally' view controller not working
我有一个将以模态方式呈现的视图控制器,并且在其中 VC 我有一个滚动视图。但是,当我的 segue 类型为 'present modally' 时,添加滚动视图通常似乎不起作用。我在某处读到我必须将我的滚动视图放在另一个视图中才能工作。所以这是我的视图层次结构:
这些是我对视图 A 的约束:
ScrollView 约束:
ViewB 约束:
在 ViewB 中,我有另一个视图,我为其父视图提供了 0 的顶部、左侧和右侧约束。我也在代码中设置了这个:
override func viewDidLayoutSubviews()
{
viewB.frame.size.height = 2000
scrollView.contentSize = viewB.frame.size
}
但是,滚动视图仍然没有滚动。感谢任何可以提供帮助的人...已经坚持了一段时间。
问题是您已将 ViewB 约束限制在其包含的滚动视图中。如果您要采用这种方法(我更喜欢),这很好;但这意味着滚动视图的 contentSize
是由 ViewB 的大小决定的,而不是由 contentSize
属性 决定的。因此,您的 viewDidLayoutSubviews
代码毫无用处,您的第一步应该是将其丢弃。
那么,ViewB 的大小是多少?不幸的是,它与滚动视图的大小相同,因为您给了 ViewB 宽度和高度约束,使其与滚动视图的大小相同。因此没有什么可滚动的。
解决方案是通过约束来完成您在代码中尝试做的事情,即给 ViewB 一个固定为 2000 的高度约束,而不是您给它的高度约束。
我有一个将以模态方式呈现的视图控制器,并且在其中 VC 我有一个滚动视图。但是,当我的 segue 类型为 'present modally' 时,添加滚动视图通常似乎不起作用。我在某处读到我必须将我的滚动视图放在另一个视图中才能工作。所以这是我的视图层次结构:
这些是我对视图 A 的约束:
ScrollView 约束:
ViewB 约束:
在 ViewB 中,我有另一个视图,我为其父视图提供了 0 的顶部、左侧和右侧约束。我也在代码中设置了这个:
override func viewDidLayoutSubviews()
{
viewB.frame.size.height = 2000
scrollView.contentSize = viewB.frame.size
}
但是,滚动视图仍然没有滚动。感谢任何可以提供帮助的人...已经坚持了一段时间。
问题是您已将 ViewB 约束限制在其包含的滚动视图中。如果您要采用这种方法(我更喜欢),这很好;但这意味着滚动视图的 contentSize
是由 ViewB 的大小决定的,而不是由 contentSize
属性 决定的。因此,您的 viewDidLayoutSubviews
代码毫无用处,您的第一步应该是将其丢弃。
那么,ViewB 的大小是多少?不幸的是,它与滚动视图的大小相同,因为您给了 ViewB 宽度和高度约束,使其与滚动视图的大小相同。因此没有什么可滚动的。
解决方案是通过约束来完成您在代码中尝试做的事情,即给 ViewB 一个固定为 2000 的高度约束,而不是您给它的高度约束。