我創建了一個
當我創建一個新的空用戶界面檔案(.xib)并將集合視圖單元格拖入其中時,它開始如下:

然后,在添加標簽后:

檢查xml源,TestCell.xib顯示:
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
它應該在哪里:
<collectionViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="y54-cV-vD7">
因此,不知何故,您的 contentView 已更改為默認UIView. 我現在找不到檔案,但我知道在更改內容視圖的類會導致各種問題之前,我遇到過類似的問題。
我什至不能讓它在 IB 中改變,所以也許 Xcode 不再允許它避免這個問題。
編輯-情侶筆記...
第一條評論:您TestCell.xib有第二個底部約束。這并沒有錯,例如,有很多原因可以有多個具有不同優先級的“相同專案”約束。
在這種情況下,該約束不是Installed,因此我們不希望它影響任何事情。
但是,如果我將其標記為Placeholder ?? Remove at build time,或者如果我洗掉它,則不再有約束沖突。
我懷疑您的moveSubviewsIntoView()func 中的某些內容正在復制未安裝的約束并激活它。
第二條評論 - 關于Content View:
如果我創建一個空的xib,并將 aUICollectionViewCell拖入其中,IB 會自動為其提供預期的Content View.
但是,如果我去New File -> Cocoa Touch Class -> Subclass of: UICollectionViewCell 和我檢查??還可以創建XIB檔案,IB不給我Content View。
令我驚訝的是,這不會引起問題!我在 Apple 的檔案(和其他地方)中讀到的所有內容都強化了僅將子視圖添加到單元格的內容視圖(與表格視圖單元格相同)的說明。所以,看起來真的很奇怪......這是一個“錯誤”嗎?我不是 Apple 工程師,所以我不知道 - 也許我只是遺漏了一些資訊(很有可能,甚至很可能是這種情況)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/390833.html
標籤:ios swift xcode constraints nslayoutconstraint
