为什么基本的UIScrollView没有几个button滚动?

为什么基本的UIScrollView只有几个button滚动?

所以我所做的是:

  • 创build基于视图的iPhone应用程序
  • 将UIScrollView拖入主控制器的xib文件中
  • scrollview现在是IB中View的子元素
  • 在滚动查看IB增加它的视图高度高达1000
  • 添加一些button到滚动视图(所以它们显示为滚动视图的子项)
  • 也创build了实例variables,并将属性IBOutlet合成
  • 将文件所有者的scrollView出口链接到滚动视图
  • 检查以确保IB中的滚动视图具有勾选的“滚动已启用”属性

但仍然在iPhone模拟器之后,它不会让我滚动视图?

只需要做一件事情:将滚动视图上的contentSize属性设置为适当的值:

 [scrollView setContentSize:CGSizeMake( scrollView.bounds.size.width, CGRectGetMaxY(bottommostSubview.frame) )]; 

其中bottommostSubview是连接到最靠近底部的滚动视图的子视图的sockets。 你也可以编写一个方法来自动查找这个视图,或者如果你知道这个大小永远不会改变的话,只需要对一个值进行硬编码。

默认的contentSizeCGSizeZero ,它有效地禁用滚动。

您可能不希望将您的滚动frame.size.height属性更改为1000.0,而是将您的滚动视图contentSize.height更改为1000.0。

不,正确答案是:

 - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; [self.scrollView setContentSize:CGSizeMake(320, 1700)]; } 

我在下一个链接上创build的原始答案:

UIScrollView不会滚动(Storyboards) – >findEvana的答案

我浪费了很多时间尝试实现滚动(和重复)。 我甚至使用了2个视图(第一个是UIScrollView和UIView)

没有必要!

关键是: viewDidLayoutSubviews

在故事板中,您将UIScrollView作为任何其他元素来实现,

但方法viewDidLayoutSubviews中的关键是setContentSize