2

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

我的第一个想法是为UIViewor创建一个类别UIScrollView,它将定义所有子视图高度和宽度的最大值,如下所示:

maxHeight = (subview.frame.origin.y + subview.frame.size.height)

然后,当我拥有适合我所有子视图的宽度和高度时,我可以在我UIScrollView. 我希望为此应该已经存在一种方法。

一个解法:

@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
4

0 回答 0