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

时间:2011-04-02 08:37:11

标签: iphone ios interface-builder uiscrollview

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

所以我所做的就是:

  • 创建基于视图的iPhone应用
  • 将UIScrollView拖入主控制器xib文件
  • scrollview现在是IB中的View的孩子
  • 滚动视图中的IB中的
  • 将视图高度增加到1000
  • 向滚动视图添加一些按钮(因此它们显示为滚动视图的子项)
  • 也创建了实例变量,并且属性IBOutlet,合成
  • 在IB中将文件所有者scrollView插座链接到滚动视图
  • 选中以确保IB中的滚动视图已选中“滚动已启用”属性

但是在iPhone模拟器中仍然不能让我滚动视图吗?

3 个答案:

答案 0 :(得分:5)

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

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

其中bottommostSubview是连接到最靠近底部的滚动视图子视图的插座。您还可以编写一种方法来自动查找此视图,或者只是在知道大小永远不会改变的情况下对值进行硬编码。

默认contentSizeCGSizeZero,可有效禁用滚动。

答案 1 :(得分:4)

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

答案 2 :(得分:0)

不,正确的答案是:

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

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

UIScrollView won't scroll (Storyboards) -> Find Evana's answer

我浪费了大量时间尝试实现滚动(并反复)。我甚至使用了2个视图(第一个内部是UIScrollView和UIView)

没有必要!

关键是: viewDidLayoutSubviews

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

但方法 viewDidLayoutSubviews

中的关键是 setContentSize