我有一个UIScrollView,框架大小是屏幕的大小。在scrollview中是我的内容UIView。该视图中有许多按钮。这些都是动态的,而且数量会随着时间的推移而增长,因此我需要增加内容UIView的大小。是否有一种很好的方法可以让UIView调整大小以适应内部的所有子视图(即UIButtons)?
我试过这个方法:
[self.content sizeToFit];
self.scrollView.contentSize=self.content.frame.size;
似乎没有做任何事情。
答案 0 :(得分:0)
sizeThatFits:
上UIView
的默认实施不会影响使用sizeToFit
时的任何更改。相反,你可以继承UIView
并使用这种严厉的方法:
@interface MyView : UIView
@end
@implementation MyView
- (CGSize)sizeThatFits:(CGSize)size {
CGSize contentSize = CGSizeZero;
for (UIView *subview in [self subviews]) {
contentSize.width = MAX(contentSize.width, CGRectGetMaxX(subview.frame));
contentSize.height = MAX(contentSize.height, CGRectGetMaxY(subview.frame));
}
size.width = MIN(size.width, contentSize.width);
size.height = MIN(size.height, contentSize.height);
return size;
}
@end