2011-04-02 30 views
2

爲什麼用幾個按鈕不滾動基本的UIScrollView?爲什麼基本的UIScrollView沒有幾個按鈕滾動?

因此,所有我做的是:

  • 創建一個視圖基於iPhone應用程序
  • 拖動一個UIScrollView到主控制器XIB文件
  • 滾動視圖現在坐作爲鑑於IB子
  • 在IB,滾動型增加它的視圖高度可達1000
  • 添加一些按鈕滾動視圖(使它們出現爲滾動視圖的兒童)
  • 確實還創建實例變量和財產IBOutlet中,合成
  • 在IB文件所有者滾動視圖插座連接到滾動視圖
  • 檢查,以確保IB滾動視圖有「滾動啓用」屬性勾選

但仍然在iPhone模擬器這一切,它不會讓我滾動視圖?你有

回答

5

只有一兩件事要做:設置滾動視圖的contentSize屬性設置爲一個適當的值:

[scrollView setContentSize:CGSizeMake(
    scrollView.bounds.size.width, 
    CGRectGetMaxY(bottommostSubview.frame) 
)]; 

哪裏bottommostSubview是連接到滾動視圖的子視圖的插座是最接近底部。你也可以編寫一個方法來自動查找這個視圖,或者如果你知道大小永遠不會改變,就只需要對一個值進行硬編碼。

默認contentSizeCGSizeZero它有效地禁用滾動。

+0

感謝託德 - 我試着投入「[自我。scrollView setContentSize:CGSizeMake(400,1000)];「,雖然這讓我看到一些滾動視圖左右,仍然沒有辦法向上/向下滾動?這裏的任何想法? – Greg 2011-04-02 08:57:00

+0

正如ryyst說,確保你的滾動視圖的框架不是1000點高 - 它應該是正常的460,它是IB的默認值。 – 2011-04-02 08:58:36

+0

實際上我剛剛回去並且將滾動視圖視圖高度從1000更改爲480,現在上/下滾動似乎起作用!不完全確定爲什麼這樣修復它...... – Greg 2011-04-02 08:59:05

4

您可能不希望將您的滾動視圖frame.size.height屬性更改爲1000.0,但您的滾動視圖contentSize.height

+0

哦 - 這個參數在IB中不可用?那麼你需要做這個programmaticall y? – Greg 2011-04-02 08:51:37

+0

@Greg:我相信'UIScrollView'會自動確定其內容的大小(我想它會在您添加或刪除子視圖時設置內容大小)。如果IB中沒有參數,請以編程方式進行設置,這應該不是什麼大問題。 – ryyst 2011-04-02 10:48:59

0

不,正確的答案是:

- (void)viewDidLayoutSubviews { 
    [super viewDidLayoutSubviews]; 
    [self.scrollView setContentSize:CGSizeMake(320, 1700)]; 
} 

原來的答案,我下一個環節上成立:

UIScrollView won't scroll (Storyboards) -> Find Evana's answer

我浪費了很多時間,試圖實現滾動(和反覆)。我甚至用過2個視圖(UIScrollView和UIView裏面的第一個)

這是沒有必要的!

的關鍵是:viewDidLayoutSubviews

在您實現UIScrollView的任何其他元素的故事板,

但關鍵是setContentSize的方法viewDidLayoutSubviews

相關問題