我必须在UIScrollView
中显示一些视图,并且我希望它适合子视图。有什么方法可以帮助我吗? UIView
根据它的孩子来调整自身似乎并不难,但我找不到任何方法做这样的事情。在执行之前我不知道所有子视图的宽度和高度以及我将拥有多少个子视图。
我的第一个想法是为UIView
或UIScrollView
创建一个类别,该类别将定义所有子视图高度和宽度的最大值:
maxHeight = (subview.frame.origin.y + subview.frame.size.height)
然后当我的宽度和高度适合我的所有子视图时,我可以在UIScrollView
上执行 setContentSize 。我希望一个方法应该已存在。
解决方案:
@implementation UIScrollView (autoResizeContent)
- (void) resizeContentFromSubviews{
float maxWidth = 0;
float maxHeigt = 0;
float height, width;
for (UIView* v in self.subviews) {
height = (v.frame.size.height+v.frame.origin.y);
if(height > maxHeigt ){
maxHeigt = height;
}
width = (v.frame.size.width + v.frame.origin.x);
if(width > maxWidth){
maxWidth = width;
}
}
[self setContentSize:CGSizeMake(maxWidth, maxHeigt)];
}
@end