在UIScrollView中调整内容UIView的大小,是否有一种很好的方法可以在不进行任何计算的情况下完成此操作?

时间:2015-02-09 19:05:25

标签: ios xcode uiview uiscrollview

我有一个UIScrollView,框架大小是屏幕的大小。在scrollview中是我的内容UIView。该视图中有许多按钮。这些都是动态的,而且数量会随着时间的推移而增长,因此我需要增加内容UIView的大小。是否有一种很好的方法可以让UIView调整大小以适应内部的所有子视图(即UIButtons)?

我试过这个方法:

[self.content sizeToFit];
self.scrollView.contentSize=self.content.frame.size;

似乎没有做任何事情。

1 个答案:

答案 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