<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] 當系統無法找到當前約束集的有效解決方案時,會出現不滿意的布局。 兩個或多個必需的約束沖突,因為它們不可能同時都是真的。 ## 識別不可滿足的約束 通常,Interface Builder 可以在設計時檢測沖突。 在這些情況下,Interface Builder 以多種方式顯示錯誤: * 所有沖突的約束都以紅色繪制在畫布上。 * Xcode 在問題導航器中將沖突約束列為警告。 * Interface Builder 在文檔大綱的右上角顯示紅色顯示箭頭。 ![](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/Art/Document_Outline_With_Errors_2x.png =280x112) 單擊顯示箭頭以顯示當前布局中所有自動布局問題的列表。 Interface Builder 通常會為這些問題推薦修補程序。 > 注意 > 雖然 Interface Builder 提供的即時反饋使得創建有效布局變得更加容易,但它無法找到所有可能的布局錯誤。 > 例如,Interface Builder 僅在畫布的當前大小處檢測沖突; 但是,只有當根視圖被拉伸或縮小超過某個點時(或者當內容擴展或縮小超過某個點時),才會發生一些沖突。 Interface Builder 無法檢測到這些錯誤。 > 因此,即使您應該始終解決 Interface Builder 識別的所有問題,修復顯而易見的錯誤也是不夠的。 您仍然需要在所有屏幕尺寸,方向,動態類型大小和您打算支持的語言上執行運行時測試。 > 當系統在運行時檢測到不可滿足的布局時,它將執行以下步驟: 1. 自動布局標識了一組沖突約束。 2. 它打破了其中一個沖突的約束并檢查布局。 系統繼續破壞約束直到找到有效的布局。 3. 自動布局將關于沖突的信息和損壞的約束記錄到控制臺。 回退系統允許應用程序繼續,同時仍嘗試向用戶呈現有意義的內容。 但是,從布局到布局,甚至從構建到構建,破壞約束的效果都會有很大差異。 在許多情況下,缺失的約束可能沒有任何可見的效果。 視圖層次結構與預期完全相同。 在其他情況下,缺少的約束可能導致視圖層次結構的整個部分錯位,錯過或完全消失。 當他們沒有明顯的效果時,往往會忽略錯誤 - 畢竟,他們不會改變應用程序的行為。 但是,對視圖層次結構或 SDK 的任何更改也可能會改變一組破壞的約束,突然產生明顯破壞的布局。 因此,當您檢測到它們時,總是修復不可滿足的約束錯誤。 為幫助確保在測試期間捕獲非明顯的錯誤,請為 UIViewAlertForUnsatisfiableConstraints 設置符號斷點。 ## 防止不可滿足的約束 不可滿足的約束條件相對容易解決。 系統會告訴您何時發生不可滿足的約束,并向您提供沖突約束列表。 一旦您了解錯誤,解決方案通常非常簡單。 要么刪除其中一個約束,要么將其更改為可選約束。 但是,有一些常見問題需要更詳細地研究: * 以編程方式向視圖層次結構添加視圖時,通常會出現不可滿足的約束條件。 默認情況下,新視圖將其 translatesAutoresizingMaskIntoConstraints 屬性設置為YES。 當您開始在畫布中繪制視圖約束時,Interface Builder自動將此屬性設置為NO。 但是,當您以編程方式創建和布局視圖時,需要在添加自己的自定義約束之前將屬性設置為NO。 * 當視圖層次結構在太小的空間中呈現時,通常會出現不滿意的約束。 您通常可以預測視圖可訪問的最小空間量并適當地設計布局。 但是,國際化和動態類型都會導致視圖的內容遠大于預期。 隨著可能的排列數量的增長,確保您的布局在所有情況下都能正常工作變得越來越困難。 相反,您可能希望構建失敗點,以便您的布局以可預測的受控方式失敗。 考慮將一些必需的約束轉換為高優先級的可選約束。 通過這些約束,您可以控制發生沖突時布局中斷的位置。 例如,將您的故障點優先級設置為999.在大多數情況下,此高優先級約束的行為就像它是必需的一樣; 但是,當發生沖突時,高優先級的約束會中斷,保護您的布局的其余部分。 同樣,避免將具有內容內容大小的視圖視為需要的內容擁抱或壓縮優先級。 通常,控件的大小是理想的故障點。 控件可以更大或更小,而不會對布局產生任何有意義的影響。 是的,有些控件只能以內在內容大小顯示; 然而,即使在這些情況下,通常最好還是讓一個控制點偏離幾個點而不是讓你的布局以不可預測的方式中斷。 >原文地址 >[Unsatisfiable Layouts](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/ConflictingLayouts.html#//apple_ref/doc/uid/TP40010853-CH19-SW1)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看