2015-01-20 53 views
1

我使用的是滾動型在我的主網頁垂直滾動像這樣(新iPad分辨率)的內容來看:更改ScrollViews子視圖動態地在iOS的8

enter image description here

爲此,我設置了View在頂部和另一個View下面。

但要我要在這裏做的就是改變以下View到顯示器到另一個View更多更大的,如果某些條件爲真,(例如,在viewDidLoad())和滾動型垂直滾動關於另一View的大小,但另一個View的大小是實際的兩倍,像下面的圖片:

enter image description here

當然上面的圖片只顯示我希望看到它在一般情況下,在這種情況下,我想成長ScrollView的contentSize更高(in 運行)。

這裏我的問題是,當我沒有設置相應的約束條件時,我可以根據需要更改contentSize,但是當我旋轉設備時,我的子視圖保持寬度爲768,但是如果在設置自動佈局約束時我旋轉設備一切正常,但我無法更新ScrollView的contentSize,因爲它基於他的子視圖計算他的度量。

我該如何做到這一點?

還有比滾動視圖更好的任何其他用戶界面?

+0

你是說你想要頂視圖有一個固定的大小(比如200),然後底部的視圖有剩下的嗎?即底部視圖高度= screenHeight - 200? – Aggressor 2015-01-20 22:53:57

+0

@Aggressor是的下面的視圖有ScrollView的其餘高度。 – 2015-01-20 22:59:20

+0

你能否再解釋一下你的底部段落?它不太清楚 – Aggressor 2015-01-20 23:04:58

回答

1

以下是設置方法,以便您可以垂直滾動,並以編程方式更新grayView的高度。

  1. 將頂部,左側,右側和底部的scrollView限制在頂級視圖的頂部,左側,右側和底部。

  2. 將orangeView的左側,頂部和右側限制在scrollView的左側,頂部和右側。將orangeView的寬度限制爲等於scrollView的寬度。爲orangeView的高度設置約束(如200)。

  3. 將grayView的左側,底部和右側限制在scrollView的左側,底部和右側。將grayView的寬度限制爲等於scrollView的寬度。爲灰色視圖的高度設置一個約束(如800)。將IBOutlet設置爲您的代碼的限制,以便您可以通過更改其constant屬性更新其高度。爲此,請查看並控制從其中拖動到您的代碼以創建IBOutlet的約束條件。給它起一個名字,如grayViewHeight。當你想要設定它時grayViewHeight.constant = 1000

  4. 在orangeView和grayView之間添加垂直空間約束。

現在您的scrollView的內容大小已完全指定,您可以在需要時進行擴展。 orangeView和grayView將自動水平伸展以匹配所有方向的scrollView的寬度。在故事板

  • +0

    不是我正在尋找的內容,但是您的回答給了我一個不錯的主意,並且我解決了問題 – 2015-01-21 17:28:45

    1
    1. 安裝委託的UIScrollView設置自動版式/自動調整用於滾動視圖。
    2. 然後在viewDidLoad()方法中添加以下代碼。

      var contentRect: CGRect = CGRectZero 
      
      for view: UIView in self.scrollView.subviews 
      { 
          contentRect = CGRectUnion(contentRect, view.frame) 
      } 
      self.scrollView.contentSize = contentRect.size 
      scrollView.addSubview(viewtoscroll) 
      

    然後運行你的應用程序。它適用於每種屏幕尺寸。

    +0

    非常感謝! – Trip 2016-03-11 13:00:12