我正在構建的應用程式有一個HTML SELECT元素,其中有一些選項。 下面是DOM:
< select id="formControl12" class="form-control">/span>
<option label="3"/span> value="3"/span>> </option>>
<option label="4"/span> value="4"/span>> </option>>
<option label="5"/span> value="5"/span>> </option>>
<option label="6"/span> value="6"/span>> </option>>
</select>/span>
當我運行 "cordova build ios "并在ios設備模擬器上運行,并點擊選擇串列時,我得到了以下錯誤,這使得我的應用程式無法在ios設備上使用:
。
2021-09-16 06:30:32.625254-0600 Future Balance[1035:28945] [LayoutConstraints] Unable to simultaneously satisfy constraints.
可能在下面的串列中至少有一個約束是你不想要的。
試試這個。
(1) 觀察每個約束條件,試著找出你不期望的約束條件。
(2) 找到添加了不需要的約束的代碼,并修復它。
(注意:如果你看到NSAutoresizingMaskLayoutConstraints你不明白,請參考UIView屬性translatesAutoresizingMaskIntoConstraints的檔案)
(
"<NSAutoresizingMaskLayoutConstraint: 0x6000033c0730 h=--& v=--& _UIToolbarContentView: 0x7fbbcd65a540. height == 0 (active)>" 。
"<NSLayoutConstraint:0x6000033ad1d0 V。 |-(0)[-_UIButtonBarStackView: 0x7fbbcd610170] (active, names: '|':_UIToolbarContentView:0x7fbbcd65a540 )>" 。
"<NSLayoutConstraint:0x6000033ad220 _UIButtonBarStackView:0x7fbbcd610170. bottom == _UIToolbarContentView:0x7fbbcd65a540.bottom (active)>" 。
"<NSLayoutConstraint:0x6000033ddae0 UIButtonLabel:0x7fbbcd68ea30。 centerY == _UIModernBarButton:0x7fbbcd47a0e0'Done'。 centerY 0.5 (active)>" 。
"<NSLayoutConstraint:0x6000033dbde0 'TB_Baseline_Baseline' _UIModernBarButton: 0x7fbbcd47a0e0'Done'。 lastBaseline == UILayoutGuide:0x6000029d7aa0'UIViewLayoutMarginsGuide'. bottom (active)>" 。
"<NSLayoutConstraint:0x6000033dbe30 'TB_Top_Top' V。 |-(>=0)-[_UIModernBarButton:0x7fbbcd47a0e0'Done'] (active, names: '|':_UIButtonBarButton:0x7fbbcd68c990 )>" 。
"<NSLayoutConstraint:0x6000033d7de0 'UIButtonBar.maximumAlignmentSize' _UIButtonBarButton:0x7fbbcd68c990. height == UILayoutGuide:0x6000029d4700'UIViewLayoutMarginsGuide'.height (active)> " 。
"<NSLayoutConstraint:0x6000033acff0 'UIView-bottomMargin-guide-constraint' V:【UILayoutGuide: 0x6000029d4700'UIViewLayoutMarginsGuide']- (0)-| (active, names: '|':_UIButtonBarStackView:0x7fbbcd610170 )>"。
"<NSLayoutConstraint: 0x6000033dbd40 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide: 0x6000029d7aa0'UIViewLayoutMarginsGuide']- (16)-| (active, names: '|':_UIButtonBarButton:0x7fbbcd68c990 )>"。
"<NSLayoutConstraint:0x6000033acf50 'UIView-topMargin-guide-constraint' V。 |-(0)-[UILayoutGuide: 0x6000029d4700'UIViewLayoutMarginsGuide' ] (active, names: '|':_UIButtonBarStackView:0x7fbbcd610170 )>"
)
將試圖通過破壞約束來恢復
<NSLayoutConstraint:0x6000033ddae0 UIButtonLabel:0x7fbbcd68ea30. centerY == _UIModernBarButton:0x7fbbcd47a0e0'Done'。 centerY 0.5 (active) >
在UIViewAlertForUnsatisfiableConstraints處做一個符號斷點,以便在除錯器中抓住這個問題。
<UIKitCore/UIView.h>中列出的UIConstraintBasedLayoutDebugging類別中關于UIView的方法也可能有幫助。
用戶看到螢屏的底部是一個選擇器,但沒有顯示任何可供選擇的選項:
這是在螢屏底部的選擇器。
這是用戶在觸摸后看到的情況:
我甚至洗掉了整個專案中的所有 CSS,因此只剩下瀏覽器/web 視圖中內置的 CSS。
uj5u.com熱心網友回復:
來自 "breautek":
Cordova并不直接對DOM元素進行任何布局。那是WebView的職責,因此,你需要向WebKit提出一個問題。
但這并不是導致你在截圖中看到的情況的原因。我創建了我自己的再現應用程式,并同時看到了你的截圖和約束錯誤。你之所以沒有看到串列項(它們實際上存在,但沒有標簽),是因為你有無效的 DOM。
你應該有:
<!--這是正確的<option> schema -->
<option value="1"/span>> 1</option>
<!--這是不正確的-->>
<option label="1"/span> value="1"/span>> </option>>
label屬性在現代瀏覽器中確實起作用,但在WKWebView中不起作用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/328896.html
標籤:

