2017-03-03 103 views
2

我的視圖寬度將根據設備寬度而改變,但我想根據我不希望這是靜態的更改高度。如何根據寬度更改視圖的高度

我找不到任何可以處理此問題的約束條件。

我聽說長寬比可以做到這一點。但我試過了似乎並不奏效。

它是如何實現的?

+0

與大家分享您的內容向我們展示了什麼是真正的用戶界面的樣子。添加你的方法,最後是你的預期輸出。 –

+0

你想如何改變高度?你希望它與整個屏幕成正比嗎?你想要它與寬度的特定比例嗎? – Rikh

+0

@Rikh - 你能解釋我怎麼做到這一點?因爲一些看法我希望前者,而另一種觀點我想要後者 – Shiva

回答

2

使用寬高比的概念與AutoLayout來更新您的視圖相對於高度&寬度。使用乘數來更新寬高比。以下是縱橫比分配的快照以及如何更新它的乘數

enter image description here enter image description here

乘數的邏輯: 1:1 =身高和圖像的寬度將保持相同 2:1 =您的寬度或高度相對於彼此是2倍,並創建一個矩形。這裏高度將是2x或寬度將是2x,取決於第一個項目和第二個項目的約束。

邏輯優先級: 優先級分配,當與另一個相同視圖約束衝突時,優先級爲特定約束。例如如果您已設置縱橫比爲1:1的視圖,且高度爲100,並且在主視圖中居中。現在,您還將左(邊距)/ Leading約束分配爲固定值,如200.在這種情況下,對於不同尺寸的屏幕寬度,居中對齊和/或主對齊和/或寬高比會互相沖突。此時,您需要根據您對設計調整的要求更新0-1000之間的優先級。

分享我的設計,我會給你確切的邏輯,如何使用這個概念

+0

乘數1:1是什麼意思,你能告訴我關於其他事情,以及像關係..什麼是其他可用的關係和它的情況下可以用嗎?什麼是優先級,常量,標識符,佔位符,安裝等... – Shiva

+0

請幫我理解我會通過upvoting你的帖子讚賞一次達到15分以上...希望你能幫助我 – Shiva

+0

你能解釋一下嗎?我常量,關係,標識符,佔位符和安裝的邏輯? – Shiva

1

嘗試用以下簡單的方法..

1)給出LeadingTrailing約束像下面的圖像。

enter image description here

2)現在設置TopBottom或其他約束按照你的設計。對我來說,我已經解決了Vertically Center

enter image description here

3)現在設置的UIViewHeight按您的Ratio您在設計要和選擇view只是Drag and Drop在同一view,並選擇Aspect Ratio後。 XCode將自動獲得Ratio Constraint。對於參考。見下圖。

enter image description here

+0

我與寬度和高度的比例約束混淆......如果我想讓高度變化,那麼我必須選擇高度和縱橫比......以便高度將根據變化的寬度而變化...澄清我的關係plz – Shiva

+0

感謝您一步一步的圖片...我喜歡它 – Shiva

+0

**限制爲保證金**它是如何影響前導,尾隨,頂部和底部的?請解釋.. – Shiva