2017-04-26 52 views
0

什麼工作:最大化面積在縱向方向一個UIImageView,保持它上面的上海華盈的芯Y點

我有在橫向上左一個UIImage當一個UIViewController。我希望圖像儘可能大,但不應超出場景的左半邊。看來你可以通過添加一個約束條件來達到這個目的,該約束條件要求超級視圖的「Center X Between Margins」值始終大於或等於圖像的後邊緣。

什麼行不通:

同樣,相同的UIImage應該是在現場的縱向頂部。圖像應該很大,但不能延伸到場景的上半部分之下。我期望添加一個約束條件,要求超級視角的「Center Y Between Margins」值大於或等於圖像的底邊,但是如何實現這一點並不明顯。從圖像拖動到超級視圖的cntl拖動會在圖像底部和「底部佈局指南」頂部之間創建一個約束。我檢查了尺寸檢查器的選項,用Superview.CenterYWithinMargins代替它,但沒有運氣。相反,如果您轉到尺寸檢查器並單擊「底部佈局指南。頂部」,則會出現選項「中心Y」,但顯示爲灰色。我懷疑底部佈局指南不是要使用的對象,但尚未找到指定其他對象的機制。

問題:

什麼是約束一個UIImageView的最佳方式(或者任何看法,對於這個問題),所以它的底邊將不會延伸低於superviews芯Y?

任何想法爲什麼景觀約束選項與肖像約束選項如此不同?

謝謝!

回答

1

讓我們先從第一個命題:

我想要的形象是越大越好,但它不應該超出左半現場

您還沒有確切解釋在圖像視圖要去的地方,但爲了討論的目的,我們假設它位於左上角。然後,它會具有這四個約束:

  • 頂部針扎到的SuperView頂部

  • 左鎖定到的SuperView左

  • 寬度設定爲等於上海華寬度,但具有1/2

    乘法器
  • 縱橫比(寬高比)設置爲圖像本身的縱橫比

現在,讓我們的第二個命題:

在現場的縱向頂部。圖像應該很大,但不能延伸到場景的上半部分以下

再次,我假設我們位於左上角。然後,約束條件是:

  • 頂部針扎到的SuperView頂部

  • 左鎖定到的SuperView左

  • 高度設定成等於高度的SuperView但是具有1/2

  • 乘法器

    縱橫比(寬高比)設置爲圖像本身的縱橫比

正如您所看到的,只有一個約束需要在橫向和縱向之間旋轉時換出。這可以配置爲無代碼(對於iPhone;對於iPad,您需要代碼進行交換)。

以下是結果的截圖。在肖像,我們不延長下面的上半部分:

enter image description here

在景觀,我們不超出左半:

enter image description here

+0

如果不是你希望,問題是你沒有足夠好地描述它。更好地描述它,我很樂意修改。 – matt

+0

謝謝,馬特!倍增器的使用從未發生過。對於不提供您詢問的數據,我表示歉意。 「提供足夠」和「造成太多」之間存在棘手的平衡! –

相關問題