2014-11-14 45 views
0

我有一個奇怪的輸出與autoLayout用於以下方案。ScrollView With AutoLayout

我有4個子頁面滾動。 (子頁面或scrollPage已經與autoLayout分開設計)。

MainView有一個加載子頁面的scrollView組件。

一切都很好,除了開始。第一次加載後,子頁面組件排列不正確。只要它收到第一次輕拍/觸摸,就會自動重新滾動/重新排列到適當的位置。看起來像一個錯誤。

加載會產生問題。我附上了2張圖片供上述場景參考。 FirstOne在第一裝載enter image description here

第二個剛上滾動區域攻enter image description here

第二個之後是正確的一個。我需要展示這個,而不是第一個。 需要幫助來解決這個問題。

謝謝, Satyaranjan

還有一點要注意, [myScroll scrollRectToVisible:CGRectMake(320 * PAGENUMBER,0,320,240)的動畫:NO]; 這是行不通的因爲我使用子頁面的動態寬度。因爲它會因iPhon5和iPhone6而異

+0

是否有在控制檯任何輸出,當你加載scrollPage如自動版式警告?何時何地添加約束?你能發佈你用來構造視圖的一些代碼嗎? – Jonathan 2014-11-14 14:15:44

+0

[scrollLayer setContentSize:CGSizeMake(self.view.frame.size.width * noofpages,scrollLayer.frame.size.height)]; CGRect sFrame = [scrollLayer bounds]; sFrame.size.width = self.view.frame.size.width; for(int i = 0; i Satyaranjan 2014-11-14 15:11:27

+0

警告消息: 「 」「, 」 Satyaranjan 2014-11-14 15:21:22

回答

1

首先,您在使用autolayout時通常不想設置scrollView的contentSize - 如果您的子視圖佈局正確,它將自動執行此操作。

試試這個:

  • 約束滾動視圖的邊緣的所有四個其父
  • 確保translatesAutoresizingMaskIntoConstraints是NO所有視圖
  • 創建一個名爲「內容查看」視圖和父它的滾動視圖。
  • 針全部四個contentViews的邊緣來滾動視圖
  • 父的子視圖內容查看,並與自動佈局

安排他們如果由於某種原因,你需要programmaticly更改子視圖的大小,你需要重寫它的intrinsicContentSize方法在更改後返回正確的大小。更改後,您可能需要從其父視圖調用視圖的sizeToFit方法(不確定 - 可能會自動發生)。

一般來說,使用autolayout時,幾乎不應該明確設置任何東西的大小。如果無法避免,則應該通過創建高度/寬度約束並在updateConstraints方法中在運行時修改它們來完成。

編輯:

我做了演示如何建立一個滾動視圖和其他幾件事情的示例項目。

看一看!

https://github.com/annabd351/AutolayoutTemplate

+0

沒有設置內容大小,第一個子頁面將顯示,它不會滾動。除了你的步驟來解決,你可以請詳細說明或給我一個鏈接如何約束邊緣。我正在使用「添加缺失」約束選項。 – Satyaranjan 2014-11-14 19:18:34

+0

這裏有幾個鏈接:http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/ – 2014-11-14 21:09:53

+0

https://developer.apple.com/library/ios/technotes/tn2154/_index。 html – 2014-11-14 21:10:42

相關問題