2

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

self.scrollViewForNewsButtons.contentSize = CGSizeMake(self.view.frame.size.width, totalContentHeight);

将所有按钮添加到滚动视图后,totalContentHeight 等于 numOfButtons*eachButtonsHeight。

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

1)这是我滚动到内容末尾并将内容保持在可以推送的最后可能位置时得到的结果:

滚动图片

2)这是我释放鼠标并且滚动视图弹回其最终位置后得到的:

不滚动图片

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

4

2 回答 2

4

只需使用您的总按钮及其高度计算来设置内容大小......例如......

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

试试这个代码...

于 2012-12-21T10:15:00.923 回答
0

如果您将滚动视图框架大小设置为

self.view.bounds
于 2012-12-21T10:11:51.717 回答