自动调整UIScrollView的“ContentSize”大小的最佳做法是什么?

时间:2013-04-10 13:25:31

标签: uiscrollview autoresize objective-c-category subviews contentsize

我必须在UIScrollView中显示一些视图,并且我希望它适合子视图。有什么方法可以帮助我吗? UIView根据它的孩子来调整自身似乎并不难,但我找不到任何方法做这样的事情。在执行之前我不知道所有子视图的宽度和高度以及我将拥有多少个子视图。

我的第一个想法是为UIViewUIScrollView创建一个类别,该类别将定义所有子视图高度和宽度的最大值:

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

0 个答案:

没有答案