簡體   English   中英

具有大小類的iOS自動布局不會區分3” 5”和“ 4”的風景嗎?

[英]iOS autolayout with size classes does not differenciate landscape for 3“5 and 4”?

這就是我過去幾個小時一直在努力的事情。

我有一個視圖控制器,其中包含一些標簽,圖片和tableview。 我正在使用自動布局/大小類,以便僅對支持的各種設備使用一個情節提要(意思是:所有尺寸的iPhone和iPad)。

Noew一切正常,只有一件事:“寬緊湊x高緊湊”中的設置用於橫向3“ 5和4” iPhone。 因此,要么我說表格視圖需要480px,而在iPhone 5 / 5S上有很多空間,要么我將其設置為480px,但是我不能可靠地在單元格中垂直對齊項目。

為何沒有辦法說“此視圖應始終占據整個寬度”?

任何解決方案,甚至解決方法都可以。 非常感謝您的寶貴時間!

在3.5英寸,4英寸和4.7英寸設備之間,尺寸級別沒有區別。它們在水平和垂直方向上都具有相同的尺寸級別,並且在旋轉時的行為方式也相同。

您可以定義一個視圖以占用所有可用空間。 分別設置帶有約束的底視圖和頂視圖,分別附加到底邊緣和頂邊緣,並通過在頂部設置約束,將中間視圖(在您的情況下為表格視圖)設置為占據中間的所有空間頂視圖,底部約束與底視圖。 現在,由於頂視圖連接到頂部,而底部連接到底部,您將使中間視圖根據需要增長和縮小。

有兩種方法可以獲取基於百分比的大小。

  1. 將目標元素的寬度鏈接到另一個元素的寬度。
  2. 將您的元素固定到其Superview並使用“ 乘數”設置而不是“ 常量”

假設您想將TitleLabel設置為與另一個元素相比具有相對寬度。

方法1的示例:

Ctrl +從TitleLabel拖動到另一個“目標”元素(例如其父視圖),然后選擇“ 相等寬度” ,然后,如果您想要50%的寬度,則可以將“約束”設置中的“ 乘數”字段更改為0.5。

方法2的示例:

將TitleLabel的適當邊緣固定到其Superview的“ Center”,“ Bottom”或“ Trailing edge” *(編輯器-> Pin-> X Space to Superview)。

在“約束設置”中,確保在“ 第一項”字段中具有TitleLabel,並將“ Superview”作為第二項

*因為Superview的頂部/頂部邊緣的值為0,所以乘以這些值的乘數將無效,因為0 x 0 = 0。

我發現方法#1在“表視圖”中不能很好地工作,因此#2可能會帶來更多的運氣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM