2016-05-25 30 views
1

我正在研究必須支持所有當前iOS設備外觀因素的通用應用程序。界面通過故事板使用自動佈局,並且當前在iPad,iPhone 6和iPhone 6 Plus外形上正確顯示。但是,我正在努力獲得界面/限制,以適應iPhone 5/SE外形尺寸。有沒有人對我如何解決iPhone 5/SE外形因素的限制提出建議,或者您是否會建議爲iPhone 5/SE裝載不同的XIB?提前致謝。Autolayout與不同形狀因子的不同XIB?

在iPhone 6S正確的接口: Correct interface on an iPhone 6S

在iPhone 5/SE破碎接口: Broken interface on iPhone 5/SE

(這是給我一個困難時期的唯一視圖)。

+0

您使用的是大小班級嗎? –

+0

問題在於3.5in,4in和4.7in外形尺寸中的最小尺寸類別。這不能讓我區分iPhone 5/SE和6種外形。 – arcade16

回答

1

我的經驗法則是爲Any x Any大小類設計故事板,然後根據需要對其他大小進行特定更改。這是因爲Any x Any強制您根據可調整大小的組件和相對定位進行思考,因爲您正在使用實際上並不存在於任何設備上的600 x 600大小。我的猜測是,你的設計有固定的組件之間的垂直約束,當你想要的是其中的一些是相對的。換句話說,它看起來就像您的登錄按鈕,分隔符爲-- or --,並且TouchID視圖距視圖底部邊緣固定距離,其他視圖從頂部邊緣固定。如果自動佈局無法在運行時計算所需距離,則會選擇一個約束關閉以解決問題;在這種情況下,它是密碼字段底部到登錄按鈕頂部之間的垂直約束。相反,我會將TouchID按鈕和視圖底部之間的約束設置爲小於或等於約束,而不是等於和/或給它比其他垂直約束更低的優先級。

+0

謝謝!在推斷的佈局中佈置元素會產生很大的變化。 – arcade16

0

在這裏,您使用的是不重疊的不同物體。 因此,您可以使用stack View作爲您的應用程序。 對你的對象進行分組,並對其應用約束 它會降低複雜性,併爲你的應用提供更好的性能 也解決你的問題。

+0

總的來說,這並不是一個壞主意,但實際上,使用大量'UIStackView'呈現的UI確實看起來很糟糕。你必須真正擺弄「UIStackViewDistribution」值才能得到你想要的。 – NRitH

+0

通過看到問題stackview解決問題,因爲沒有太多的對象是如此 –