使用UIScrollView和setContentSize时设置正确的大小

时间:2011-05-24 01:34:57

标签: ios uiscrollview scroll

我只是想拥有比普通iPhone屏幕更适合的控件。例如,在“联系人”应用中查看某人的联系信息。

看来我应该使用UIScrollView来实现它。

假设我需要大约800像素。所以在我的NIB中,我将ScrollView的视图设置为800的高度。然后我在Scroll View下添加我的控件。

我建立了连接,然后在viewDidLoad中,我照常做到了:

[scroller setScrollEnabled:YES];
[scroller setContentSize:CGSizeMake(320, 800)];

如果我在这种状态下构建并运行,它就不会滚动。因此,在线查看,人们说你必须将其设置为大于UIScrollView。

我似乎无法找到有关如何实际计算setContentSize中800应该是什么的信息。它只是猜测,直到看起来正确吗?如果我将它设置为801,我从未在Scroll View的底部看到所有内容,如果我将其设置为1000,我可以看到底部,但它并没有真正在底部结束。

我只是希望如果用户向下滚动,它会正确地在底部结束。

这是如何计算的?或者我错过了什么?这似乎是一个相当普遍的用途,但没有找到模拟这个简单例子的代码示例。

1 个答案:

答案 0 :(得分:3)

Scrollview通过显示较小的区域,但允许您在画布上平移,为更大的画布提供透视图。现在,当您将scrollview的帧大小和内容大小设置为相同时,目的就会失败。因此没有滚动。

如果在大小为320x480的窗口/视图上将滚动视图的帧定义为320x800,则会截断部分视图。它不可见,但它在那里。你的内容也在那里。您需要做的是设置滚动视图以匹配窗口的大小,即320x480。现在,您将进行滚动,因为透视图小于画布。