在 UIScrollView 中调整内容 UIView 的大小,有没有一种好方法可以做到这一点而无需进行任何计算?
Posted
技术标签:
【中文标题】在 UIScrollView 中调整内容 UIView 的大小,有没有一种好方法可以做到这一点而无需进行任何计算?【英文标题】:Resizing the content UIView in a UIScrollView, is there a good way to do this without having to do any calculations? 【发布时间】:2015-02-09 19:05:25 【问题描述】:我有一个 UIScrollView,框架大小是屏幕的大小。滚动视图内部是我的内容 UIView。此视图中有许多按钮。这些是动态的,并且数量会随着时间的推移而增长,所以我需要增加内容 UIView 的大小。有没有一种好方法可以让 UIView 调整大小以适应内部的所有子视图(即 UIButtons)?
我试过这个方法:
[self.content sizeToFit];
self.scrollView.contentSize=self.content.frame.size;
但似乎什么也没做。
【问题讨论】:
【参考方案1】:UIView
上sizeThatFits:
的默认实现不会影响使用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
【讨论】:
以上是关于在 UIScrollView 中调整内容 UIView 的大小,有没有一种好方法可以做到这一点而无需进行任何计算?的主要内容,如果未能解决你的问题,请参考以下文章
调整 UIView 的大小以适应 uiScrollView 中的所有内容