2017-04-23 68 views
0

我試圖構建類似於ios照片庫的UI:帶有滾動視圖的導航視圖控制器佔用80%高度和100%寬度父視圖和集合視圖控制器佔據其餘高度和100%寬度。因此,這裏是它的樣子:如何設置不佔用整個父視圖的滾動視圖約束

enter image description here

藍色區域是滾動視圖和內容視圖。底部是一個集合視圖,假設其行爲類似於傳送帶。你可以看到,我在下面的截圖設置了限制:

enter image description here

我想設置了滾動高度,使得它只佔父視圖房地產的80%和集合視圖佔據剩下的。不過,我似乎無法解決scrollview約束問題,例如autolayout無法解析scrollview的高度/ y位置。正如你在上面的圖片中看到的,我試圖將scrollview的高度設置爲父視圖的50%,但是自動佈局仍然抱怨無法解析高度。如果我讓界面生成器解決問題,它只會將間距添加到scrollview內的內容視圖中,並將其推下。你可以在下面的截圖中看到。

enter image description here

enter image description here

回答

2

您的看法heirarchy設置正確,所以這很好,你在正確的軌道上添加什麼約束。我打算寫的所有限制從步驟1開始

  • 要將UIScrollView加頂,開頭和結尾約束到superView。在UIScrollViewsuperView之間也要加上相同的高度限制,並將乘數設爲0.8。
  • 現在在UIScrollView下面加上你的UICollectionView,並給它一個領先,尾隨和底部的superView。還要在UICollectionViewUIScrollView之間添加垂直間距。
  • 現在,在UIScrollView內部添加contentView。爲contentView添加領先,頂部,底部和尾部至UIScrollView。只要你這樣做,約束將會中斷,Xcode會抱怨。 現在您需要做的更多的事情是在UIScrollViewcontentView之間添加相同的高度和寬度約束。將此等高度約束的優先級設置爲250(假設您想要垂直滾動),以便在UIScrollView內的內容變得太大而不能完全顯示時斷開。

現在就這個額外的間距問題而言。你需要做的是,選擇具有您UIScrollVIewUIViewController,然後選擇屬性檢查器這個UIViewController取消選中調整滾動視圖插圖選項。截圖請查看this

enter image description here

+0

我並不期待這樣全面的答覆。非常感謝你做的這些!我以前從來沒有用過優先考慮,你的回覆給了我一些新的東西。感謝您的支持。 – user30646

1

正如我從上面看到執行以下操作。

  1. 將前導,尾隨和頂部約束添加到滾動視圖。
  2. 添加高度約束,即從scrollview拖到superview並添加等寬,等寬約束將多因子更改爲0.8。
  3. 針對超視圖和垂直空間約束相對於滾動視圖添加領先的尾部底部約束到集合視圖。
相關問題