簡體   English   中英

iPhone 6 Plus自動旋轉問題

[英]iPhone 6 Plus Autorotation Issue

我僅在iPhone 6 plus(模擬器和實際設備)上遇到一個奇怪的自動旋轉問題。

我用一個視圖創建了一個新的Xcode項目。 它所具有的只是初始視圖控制器中的一些UI元素(具有適當的約束)。 這是首次啟動時的樣子:

在此處輸入圖片說明

但是一旦更改了設備方向,所有UI元素就會消失?!?!

在此處輸入圖片說明

在其他任何設備上都不會發生這種情況。

我在這里想念什么? 非常感謝您的幫助。

關於原始問題:自動布局約束的大小類似乎是錯誤的。 那將導致您的視圖以一種寬度/高度組合很好地呈現,而在另一種寬度/高度組合中完全失敗。 除任何/任何以外的任何尺寸類別的設計都會在Xcode的底部顯示一個藍色尺寸類別欄,以指示/警告有關這一點。

通常,您應該為每個受支持的尺寸類別指定約束。 最簡單的方法是僅在任何/任何類中設計視圖。 這樣,您的布局在所有配置上都將相同。 您可以只為一個尺寸類別更改指定的約束,也可以僅選擇該尺寸類別並檢查視圖的約束,啟用/禁用它們或添加新的約束。 這些將僅在該特定尺寸等級中設置。 要查看約束,可以在情節提要中選擇它,也可以在它所屬的視圖的大小檢查器中雙擊它。 約束的大小檢查器的最后一部分說明了約束存在的大小類。

約束的大小類設置示例

將視圖從一個尺寸類別遷移到另一個尺寸類別意味着在每個視圖和約束上更改此尺寸類別...

手動方式
為此,您需要通過單擊Installed復選框旁邊的+來添加要遷移到的尺寸類別,然后單擊要從其遷移的尺寸類別左側的小x 如果要遷移到任何一個,請不要單擊+ ,只需選中Installed旁邊的復選框。 而且不要忘記改變大小類視圖對象本身也是如此。 如果您不這樣做,則視圖將不會出現在所需的尺寸級別中。

自動方式
也可以通過查看Storyboard文件的源代碼來更改此設置。 約束設置可能看起來像這樣

<variation key="default">
    <mask key="subviews">
        <exclude reference="fTD-HZ-ZT3"/>
    </mask>
    <mask key="constraints">
        <exclude reference="eyr-oK-LvV"/>
    </mask>
</variation>
<variation key="heightClass=compact-widthClass=regular">
    <mask key="subviews">
        <include reference="fTD-HZ-ZT3"/>
    </mask>
    <mask key="constraints">
        <include reference="eyr-oK-LvV"/>
    </mask>
</variation>

變化項中的key屬性顯然指定了大小類。 Default表示任意/任意。 僅搜索並替換所有要遷移的大小類,然后將其替換為要遷移的大小類會容易得多。 如果要從默認類遷移或遷移到默認類,則有點棘手,因為您必須更改excludeinclude ,反之亦然。 然后,您將不得不添加/刪除要遷移到/從中遷移的完整大小類部分。 工作多一點,但比手工完成要容易得多。
但是,如果您的視圖已包含多個尺寸類別的尺寸類別規范以僅更改正確的尺寸類別,則應小心。

暫無
暫無

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

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