2012-12-21 29 views
2

我想在UIScrollView类,其中将包含大量UIButtons,垂直放置窗口中生成一个滚动控制器。我将滚动视图的大小设置为等于当前视图控制器的根视图,以便滚动视图覆盖整个可见窗口。然后生成我要添加到滚动视图中的UIButton:我将每个UIButton添加到前一个UIButton的下面,然后将当前UIButton的高度添加到名为“totalContentHeight”的变量中。最后,我设置滚动视图的contentSize的高度为该值,在下面的行的代码:IOS UIScrollView:无法滚动,直到内容结束

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

正如你所看到的,一个't喔按钮绘制在可见区域之外。这就像滚动视图的区域覆盖了整个窗口以及iPhone的按钮区域。我找不到合理的解释。我是否设置了区域大小错误还是缺少其他内容?

+0

我不知道为什么,但看起来像你有2个状态栏上。也许这会弄乱滚动视图的大小或位置。 – krafter

+0

与“Turkcell 3G”等第二个状态栏只是背景图像的一部分,它不是一个实际的状态栏。 –

+0

我建议你向我们展示设置scrollview大小的代码。 – ader

回答

4

只是设置内容大小与您的总按钮,它的高度......对于防爆计算..

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

试此代码...

+0

@UfukCanBicici @UfukCanBicici我认为这是因为在scrollview和textview这里框架与navigationcontroller和tabbarcontroller计算,所以我认为这发生尝试添加我的代码... –

+0

这工作,我已经这样解决它,但添加一个常数总高度似乎不是一个强大的解决方案,因为我需要在这个应用程序中有很多这样的滚动视图。我如何以编程方式获得这个小偏移量(代码中的44),而不是通过试错找到它? –

+0

@UfukCanBiçici我设置了很多控件,一些代码是 float ftbl = txtantenimities.frame.origin.y + txtantenimities.contentSize.height + 15; tblbackview.frame = CGRectMake(tblbackview.frame.origin.x,FTBL,tblbackview.frame.size.width,tblbackview.frame.size.height); 浮子fscrview = tblbackview.frame.origin.y + tblbackview.frame.size.height + 20; scrview.contentSize = CGSizeMake(320,fscrview); –

0

如果你设置了滚动帧大小一样

self.view.bounds 
+0

不幸的是,将self.view.frame更改为self.view.bounds结果相同。 –