2012-12-21 27 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結果相同。 –