2014-11-08 11 views
0

我有一個UIScrollView,它填充了設備的寬度,它包含了幾個水平佈置的UIViews。視圖都具有相同的寬度,因此在iPhone上必須滾動以查看所有視圖,但在iPad上,所有視圖都可見。如何在UIScrollView中集中一堆水平視圖

我的問題是我怎樣才能完美地水平居中在屏幕上的意見?當可用空間足夠大以顯示所有視圖時,它們需要居中,但當它不足以顯示所有視圖時,它們可以像現在這樣佈置,只需從左到右。

該接口已完全在Interface Builder中設置。滾動視圖被設置爲填充整個設備寬度 - 前導和尾隨到超視圖。在滾動視圖中的第一個視圖已經領先設置爲其超視圖,因此它被卡在最左邊。最後一個按鈕的尾部設置爲超級視圖 - 位於滾動視圖的最右側,用於定義可滾動內容區域。中間的每個視圖都相對於左側的視圖進行佈局 - 導致前一個按鈕。

下面是當前佈局的圖形表示: enter image description here

這裏是想什麼,我獲得的圖形表示: enter image description here

附加信息:
滾動視圖沒有總是填充設備寬度,因爲它實際上是完全透明的。當所有視圖都可見時,我想禁用滾動。這需要具有自適應性,因此在旋轉設備時可以根據需要更改佈局,因爲在橫向的iPhone上,所有視圖都應該可見,但縱向不可見。

+0

你試過設置的滾動視圖的'contentInset'屬性,計算你需要多少空間兩側? (你有空間的權利,除以2.) – 2014-11-08 22:51:03

+0

@CraigOtis我沒有。這聽起來很有希望,我會給你一個機會。 – Joey 2014-11-08 22:54:54

+0

@CraigOtis這個伎倆!超級簡單,謹慎回答? – Joey 2014-11-08 23:22:53

回答

0

您可以嘗試設置滾動視圖的contentInset屬性,該屬性的類型爲UIEdgeInsets。該屬性只是爲滾動視圖提供一定量的「填充」,並添加到可滾動區域。

您可以確定在視圖的末尾(右側)有多少額外空間,除以2,並使用該值在每側提供等寬填充。

0

另一種純粹的自動佈局爲基礎的方法可能是:

  • 約束在上海華水平居中的中間視圖。
  • 每個視圖相對於中間視圖約束在一個鏈
相關問題