我有一个UIScrollview,其中IBOutlet映射到ganttScroller。这个UIScrollView里面有一个UIView。我在IB中制作了UIView,其宽度为100。
然后我开始向该UIView添加按钮(通过IBOutlet scrollContent映射)
float test = [scrollContent frame].size.width;
for (int i=0; i<15; i++) {
UIButton *showButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
showButton.frame = CGRectMake(55.0 * i,
50.0,
50.0,
20.0);
[showButton setTitle:NSLocalizedString(@"test", @"") forStates:UIControlStateNormal];
[scrollContent addSubview:showButton];
}
test = [scrollContent frame].size.width;
[scrollContent sizeToFit];
test =[scrollContent frame].size.width;
一开始我检查我的scrollContent的大小,它确实是100(在调试器中检查'test'),在添加按钮之后它又是100,而在sizeToFit之后它仍然是100(我会期待很多)更大,因为所有这些按钮都已添加...按钮显示正确! 我的gantScroller(UIScrollView)需要正确的大小
有什么问题?
答案 0 :(得分:1)
我认为-[UIView sizeToFit]
实际上不会考虑其子视图。您需要简单地计算正确的宽度并将其分配给视图的框架。然后,您还需要设置滚动视图的contentSize
属性,以使其正确滚动。
尽管容器太小,你看到所有按钮的原因可能是UIViews默认不剪辑他们的子视图。