UI 滚动视图未按预期滚动
UI Scroll View doesn't scroll as intended
使用故事板和自动布局,我将滚动视图拖到视图控制器中并适当地满足自动布局约束。我添加了一个以屏幕为中心的标签,并具有适当的自动布局约束。
在 viewDidLoad、viewWillAppear 和 viewDidLayoutSubviews 中实现了以下代码(当然在不同的 运行 次)
scrollView.contentSize.height = 1000
在模拟器中 运行ning 时,视图只能水平滚动,不能垂直滚动。一开始看到它在没有应用特定条件的情况下水平滚动时没有任何意义,直到我仔细研究了这些约束。
最初拖入 UIScrollView 并选择 Pin 选项以添加约束时,它显示前导和尾随 space 的默认值为 -20 而不是 0。这似乎可以解释自动水平滚动但仍然没有解释为什么我无法实现垂直滚动。
我也试过使用 CGSize 指定内容大小:
scrollView.contentSize = CGSize(400, 1000)
或
scrollView.contentSize = CGSize(view.frame.width, 1000)
似乎都不起作用。我还使用初始化程序 CGSizeMake(width, height) 使用相同的参数实现了上述方法,但也不起作用。
在选择滚动视图时,默认情况下,滚动会被选中,其他选项也会被选中。
您可以将约束设置为在容器视图中水平和垂直居中。不幸的是,这会引发错误 "Scroll view has ambiguous content size." 如果您确实知道要在代码中设置内容大小,则可以忽略它。
但拖出一个空的 UIView(称为 containerView)可能是更好的做法,将其固定 top/bottom/left/right 到滚动视图中心的标签,如上所示。为 containerView 的高度设置一个约束。然后为 containerView 的高度约束创建一个 IBOutlet,称之为 containerViewHeightConstraint。然后在代码中说:
self.containerViewHeightConstraint.constant = 1000 //or whatever height you want for scrolling
使用故事板和自动布局,我将滚动视图拖到视图控制器中并适当地满足自动布局约束。我添加了一个以屏幕为中心的标签,并具有适当的自动布局约束。
在 viewDidLoad、viewWillAppear 和 viewDidLayoutSubviews 中实现了以下代码(当然在不同的 运行 次)
scrollView.contentSize.height = 1000
在模拟器中 运行ning 时,视图只能水平滚动,不能垂直滚动。一开始看到它在没有应用特定条件的情况下水平滚动时没有任何意义,直到我仔细研究了这些约束。
最初拖入 UIScrollView 并选择 Pin 选项以添加约束时,它显示前导和尾随 space 的默认值为 -20 而不是 0。这似乎可以解释自动水平滚动但仍然没有解释为什么我无法实现垂直滚动。
我也试过使用 CGSize 指定内容大小:
scrollView.contentSize = CGSize(400, 1000)
或
scrollView.contentSize = CGSize(view.frame.width, 1000)
似乎都不起作用。我还使用初始化程序 CGSizeMake(width, height) 使用相同的参数实现了上述方法,但也不起作用。
在选择滚动视图时,默认情况下,滚动会被选中,其他选项也会被选中。
您可以将约束设置为在容器视图中水平和垂直居中。不幸的是,这会引发错误 "Scroll view has ambiguous content size." 如果您确实知道要在代码中设置内容大小,则可以忽略它。
但拖出一个空的 UIView(称为 containerView)可能是更好的做法,将其固定 top/bottom/left/right 到滚动视图中心的标签,如上所示。为 containerView 的高度设置一个约束。然后为 containerView 的高度约束创建一个 IBOutlet,称之为 containerViewHeightConstraint。然后在代码中说:
self.containerViewHeightConstraint.constant = 1000 //or whatever height you want for scrolling