有没有办法让UIScrollView
自动调整到正在滚动的内容的高度(或宽度)?
类似于:
[scrollView setContentSize:(CGSizeMake(320, content.height))];
发布于 2010-05-31 23:24:48
UIScrollView不会自动知道其内容的高度。你必须自己计算高度和宽度
用下面这样的东西来做
CGFloat scrollViewHeight = 0.0f;
for (UIView* view in scrollView.subviews)
{
scrollViewHeight += view.frame.size.height;
}
[scrollView setContentSize:(CGSizeMake(320, scrollViewHeight))];
但只有当视图一个位于另一个的下方时,这才能起作用。如果你有一个相邻的视图,如果你不想把滚动条的内容设置得比实际的大,你只需要增加一个视图的高度。
发布于 2016-07-16 15:33:47
对于那些懒得转换它的人来说,这是swift中公认的答案:)
var contentRect = CGRectZero
for view in self.scrollView.subviews {
contentRect = CGRectUnion(contentRect, view.frame)
}
self.scrollView.contentSize = contentRect.size
发布于 2016-11-27 22:11:34
来自@leviathan的最好的解决方案。只需使用FP (函数式编程)方法转换为swift。
self.scrollView.contentSize = self.scrollView.subviews.reduce(CGRect(), {
CGRectUnion($0, $1.frame)
}.size
https://stackoverflow.com/questions/2944294
复制相似问题