IOS UIScrollView:无法滚动直到内容结束

时间:2012-12-21 10:02:53

标签: iphone objective-c ios uiscrollview

我正在尝试使用UIScrollView类在窗口中生成一个滚动控制器,该类将包含许多垂直放置的UIButtons。我将滚动视图的大小设置为等于当前视图控制器的根视图,以便滚动视图覆盖整个可见窗口。然后我生成我要添加到滚动视图的UIButtons:我将每个UIButton添加到前一个UIButton的下面,并将当前UIButton的高度添加到名为“totalContentHeight”的变量中。最后,我在下面的代码行中将滚动视图的contentSize的高度设置为此值:

self.scrollViewForNewsButtons.contentSize = CGSizeMake(self.view.frame.size.width, totalContentHeight);
将所有按钮添加到滚动视图后,

totalContentHeight等于numOfButtons * eachButtonsHeight。

问题是,在模拟器中,当我运行应用程序并滚动到最后一个按钮的末尾并释放鼠标时,最后两个按钮会弹回,使它们位于可见窗口之外。用单词表达有点难,所以这里是图像:

1)这是我滚动到内容结尾时所得到的内容,并将内容保存在可能被推送的最后一个位置:

scrolled pic http://i46.tinypic.com/25h2tts.png

2)这是我释放鼠标后滚动视图弹回到最终位置后的结果:

not scrolled pic http://i48.tinypic.com/21ep6pj.png

如您所见,最后两个按钮是在可见区域之外绘制的。这就像滚动视图的区域覆盖了整个窗口以及iPhone的按钮区域。我找不到合理的解释。我设置区域大小错误还是我错过了其他东西?

2 个答案:

答案 0 :(得分:4)

只需使用总按钮及其高度计算内容大小......对于Ex ..

float yheight = totalButton * yourButtonHeight;
[yourScrollView setContentSize:CGSizeMake(320, yheight + 44)];

试试这段代码......

答案 1 :(得分:0)

如果您将scrollview框架大小设置为与

相同
self.view.bounds