2013-02-22 142 views
2

在我的UIViewController我有UIScrollViewUIView。這是兩種不同的觀點,意思是UIView不在UIScrollView裏面。我對scrollview有不同的看法,我正在編程設置和增加contentSize。而這UIView是隱藏的,我有時顯示。問題是,當我隱藏這個UIViewUIScrollView停止滾動。UIScrollView不滾動ios6

爲什麼會發生這種情況?

我已將所有前沿設置爲兩者的超級視角。有關係嗎? 請指導我。

大家好,我分享我的ViewController Sceneenter image description here

我使用的自動佈局(iOS6的)的圖像。 Scroll View ContentSize是(768,1400),我在ViewDidAppear中設置。 View下面Scroll View被隱藏,Scroll View正在滾動沒有任何問題。

現在,如果我顯示和隱藏ViewScroll View鎖,它現在不滾動。 這就是我面臨的問題。 我不是在設置內容大小,而是在代碼中做任何事情。 如果您需要任何其他信息,請告訴我。

+1

請添加一些代碼。 – Kuba 2013-02-22 15:11:41

+0

您隱藏的視圖是滾動視圖的contentView?如果是這樣的話......你需要在 – 2013-02-22 15:13:41

+0

@Rob之間看到另一個視圖,我想我需要從UIKit的問題中一起迴避... – 2013-02-22 19:03:33

回答

0

沒有任何代碼,我會大膽地猜測...

如果您contentSize不超過您UIScrollView的大小這將是一個典型的案例。如果您想隱藏視圖,然後更改滾動視圖的大小,並且您的滾動視圖超出或等於您的contentSize,那麼您將無法滾動任何內容。

另一種可能是您禁用了用戶交互。

6

iOS 6中的contentSize「auto-sizes」本身具有自動佈局。這意味着您不能設置contentSize。有些黑客建議在撥打viewDidAppear時設置它,但我會避免這種情況。如果您閱讀iOS 6 release notes(在頁面上搜索UIScrollView),它會爲您提供一些解決方案。其中之一涉及translatesAutoresizingMaskIntoConstraints屬性。

+0

我同意你的直覺,但在實踐中,我發現如果我簡單地將subview設置爲隱藏或者爲零,那麼它不會重新計算'contentSize'。它只能正常工作,如果我重置被隱藏的物品的高度限制。奇怪的是,即使我刪除了子視圖,它也不會重新計算'contentSize',除非在scrollview上有一些約束可能導致重新計算'contentSize'的_else_。如果刪除的子視圖是最後一個,則不會重新計算'contentSize'(儘管您可以手動重置)。 – Rob 2013-02-22 18:34:39

+0

永遠不要說它工作正常。只是說明爲什麼它在iOS 6中不起作用的「原因」。發行說明提到了一種解決此問題的方法。 – Luke 2013-02-22 19:35:58

+0

嗨,我知道它是將contentSize設置爲UIScrollView的框架大小。如何和何時設置? – Bhushan 2013-03-05 05:54:05

5

刪除所有與調整scrollview內容大小相關的代碼。 Autolayout在你現在滾動的時候使用這個。完成後請添加以下代碼

// Add 200 points to the bottom of the scroll view 
[self.scrollView setContentInset:UIEdgeInsetsMake(0, 0, 200, 0)]; 
self.scrollView.translatesAutoresizingMaskIntoConstraints= NO;