2016-04-22 151 views
0

我有一個UIScrollView添加到我的ViewController。並在該滾動視圖的頂部查看。我做了以下幾點:設置UIScrollView寬度

  1. 在原始視圖中放置滾動視圖並設置頂部,左側,右側和底部約束。取消選中約束到邊距。

  2. 在scrollView中添加了一個UIView(用於保存我的標籤等),並添加了頂部,左側,右側和底部約束,未約束地限制邊距。並設置等寬的原始視圖

  3. 然後,我添加一個圖像視圖和三個標籤放置在滾動視圖內的視圖。併爲它們添加頂部,左側,右側,底部和高度限制。

滾動視圖的工作原理和我的視圖不滾動,我的標籤和圖像視圖居中,但一切都非常寬。

我想知道我是如何製作的,所以視圖不寬,我不能水平滾動,只能垂直滾動。

回答

0

簡而言之,在使用自動佈局時,內容無效。
如果你想讓你scrollview可以滾動,你應該在scrollview中添加一個容器並將原始子視圖添加到容器。

例如,使用snapkit(這裏也許有些錯別字):

  1. 你有scrollview.set它是由等於self.view的框架自動佈局
  2. [進口]然後添加一個containerView作爲滾動視圖的子視圖。設置約束上:

    make.edges.equalTo(scrollview) // mean its frame equal to scrollview 
    make.width.equalTo(self.view) // set width equal to self.view 
    make.height.equalTo(yourheight).priorityLow() // the actual height,if no changes,you can ingore .priorityLow() 
    
  3. 添加sunviews到containerView,添加約束上必須設置爲containerView,不能設置爲scrollview's.forexample ,:

    containerView.addSubView(myview) 
    myview.snp_makeConstraints { (make) -> Void in 
        make.left.equalTo(self.containerView) 
        make.top.equalTo(self.containerView) 
        make.right.equalTo(self.containerView) 
        make.height.equalTo(267) 
    } 
    

閱讀官方文檔 - Technical Note TN2154 UIScrollView And Autolayout

+0

好吧,我想我跟着你。我會閱讀您提供的文檔,但基本上在滾動視圖中設置內容大小沒有任何影響? – m1234

+0

@ m1234是的,如果你使用autolayout.its沒有effetc – clangdiagnostic

0

在滾動視圖內的視圖和視圖控制器的根級視圖之間添加等寬限制。

+0

我已經完成了 – m1234

0

我剛剛纔明白這一點。試着這樣做:

  1. 製作一個滾動視圖
  2. 把你所有的標籤和按鈕的入堆棧視圖(如果你不知道堆棧的意見,檢查了這一點:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/
  3. 約束棧視圖的寬度並確保Allignment和分佈被設置爲填充

enter image description here

  • 穿戴噸他堆棧視圖滾動視圖
  • 的內部約束滾動查看到你的心中的願望
  • 把標籤和要在滾動視圖應與寬度邊界幫助什麼。這是我成功滾動視圖的圖片。希望這有助於:)

    enter image description here

    +0

    此外,如果你想要水平滾動,滾動視圖設置爲水平和堆棧視圖水平以及:) –