2013-03-20 74 views
2

我一直在這個整個上午奮鬥了超過3個小時,現在我真的瘋了!UIScrollView將無法工作

我正在使用Xcode 4.6爲iOS 6創建Storyboard應用程序。我拖放UIScrollView到ViewController。在設計了Scroll視圖的可視部分之後,使用它的手柄,我垂直拉伸它並將其向上推,使得該部分對我來說是可見的,以便設計屏幕的其餘部分。完成後,我將滾動視圖放回到適合視圖的位置。但我沒有調整滾動視圖的大小以匹配來自IB的視圖的大小。

我在viewDidLayoutSubviews方法中添加了以下代碼行(由於Chris的註釋here,使用該方法代替viewDidLoad)。

self.scrollView.contentSize = self.view.frame.size; 

該代碼被執行但滾動條不會出現,它的滾動根本不起作用!我在這裏經歷了幾乎所有的關於這個問題和答案,並嘗試了一切,但無濟於事。

我附加了可運行的Xcode項目here

請告訴我應該做些什麼才能使其工作。我對蘋果永遠感到沮喪。

謝謝。

+0

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width,500);只需放置一個靜態值並檢查並設置委託連接到您的滾動視圖。 @Isuru – 2013-03-20 06:18:12

+0

scrollize的contentize必須大於scrollview的frame(height/width),否則不會滾動,因爲不需要滾動,所有內容都可見而不滾動。而且你還在使用「自動佈局」, – Exploring 2013-03-20 06:21:47

回答

5

這是很容易做的。刪除viewDidLayoutSubviews方法,並用下面的代碼替換viewDidLoad。高度672現在硬編碼,但它會根據滾動視圖中的內容進行更改。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 627); 
    self.scrollView.frame = self.view.frame; 
} 

而在故事板,執行以下步驟 1.選擇查看並轉到尺寸檢查。 2.從contraments中選擇Bottom Space。 3.編輯底部空間約束並將常量值設置爲0(它是-211)。

鏈接更新源代碼:http://www54.zippyshare.com/v/37137086/file.html

希望這有助於。

+0

謝謝你,男人!我把頭髮拉出來了!我不用硬編碼值627,而是用'self.mailAdvancedSearchScrollView.frame.size.height'替換它。它的工作現在很好。再次感謝! :) – Isuru 2013-03-20 06:39:46

+0

很高興幫助!快樂編碼! – Kunal 2013-03-20 06:45:49

+0

嗨,庫納爾,我的一次。我再次陷入同樣的​​問題,我一整天都在努力解決它。這一次我正確地遵循了一切,並使用了上面的代碼。但它仍然不滾動!這真令人沮喪!我上傳了這裏的項目(http://www21.zippyshare.com/v/44079522/file.html)。希望你能再幫我一次,如果它沒有太多問的話。 – Isuru 2013-03-25 11:10:11

1

UIScrollViews只會在其contentSize大於其框架時才滾動。如果它小於或等於他們的框架,他們就會像意見一樣行事。

如果你想測試一下,試試:

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width,self.scrollView.frame.size.height+200);