我正在做一個自定義串列細胞(集合視圖串列單元格),基于
因此,為了闡明 LiveChannelContentView 的位置,我只是將黃色背景添加到視圖中。有兩件事我不明白。首先,即使是 Xcode 也告訴我
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x2812371b0 UIView:0x128c136b0.height == 60 (active)>
當我截取應用程式的螢屏截圖并測量黃色背景 UIView 的高度時,它仍然是 60。我認為打破約束意味著使用其他高度約束而不是 60,但這是錯誤的嗎?
另一件事是我很好奇
“<NSAutoresizingMaskLayoutConstraint:0x281209220 h=--& v=--& liveTest.LiveChannelContentView:0x128c13430.height == 44 (active)>”在我的代碼中使用。我搜索了
44作業區中包含的檔案,但一無所獲。
不太確定,但我認為 44 和 60 的高度應用于同一個 UIView 并且 Xcode 擺脫了 60 的高度錨點或其他東西。但是,當我洗掉 contentsView 的高度錨點時contentsView.heightAnchor.constraint(equalToConstant: 60),應用程式崩潰了,如下所示。

我也嘗試洗掉 contentsView 的頂部或底部錨點,但它也破壞了應用程式。
contentsView.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor),
或者
contentsView.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor),
那么誰能告訴我我應該修復哪個約束來擺脫警告?
uj5u.com熱心網友回復:
改變這部分
contentsView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
contentsView.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor),
contentsView.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor),
contentsView.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor),
contentsView.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor),
contentsView.heightAnchor.constraint(equalToConstant: 60)
])
到
contentsView.translatesAutoresizingMaskIntoConstraints = false
let con = contentsView.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor)
con.priority = UILayoutPriority(rawValue: 999)
NSLayoutConstraint.activate([
contentsView.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor),
contentsView.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor),
contentsView.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor),
con,
contentsView.heightAnchor.constraint(equalToConstant: 60)
])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/362665.html
