我用UIScrollView创建了一个视图。当我尝试向下滚动时,它在不同设备上的工作方式不同。我想出这是因为设备的屏幕尺寸不同。我使用scrollView.contentSize = CGSizeMake(325, scrollView.frame.height)
设置了滚动视图的高度。
当我试图找到解决问题的方法时,我遇到了这个问题
CGRect contentRect = CGRectZero;
for (UIView *view in self.scrollView.subviews) {
contentRect = CGRectUnion(contentRect, view.frame);
}
self.scrollView.contentSize = contentRect.size
但这对我不起作用,因为我的滚动视图包含许多具有不同位置的不同大小的子视图,标签和按钮。我在故事板上完成了scrollview的所有设计,但我并没有使用自动布局。
我需要获得相对于运行它的设备的scrollview的确切高度。有没有直接和简单的方法来实现这一点?如果没有,我想知道我必须做些什么来获得所需的高度。提前谢谢!
答案 0 :(得分:0)
我认为你将scrollview的contentSize与它的框架/边界混淆了。 scrollview的框架应与您正在运行的设备屏幕的边界相匹配。 contentSize应该是"虚拟画布"尺寸,即您的"许多子视图,标签和不同尺寸的按钮的大小,具有不同的位置"。这应该永远不会改变,因为无论设备的实际大小是什么,您都希望滚动视图能够滚动显示所有内容。我使用autolayout将scrollview的边缘扩展到其superview的边缘。您必须在代码中明确设置contentSize,遗憾的是,在故事板编辑器中无法执行此操作。