我认为addSameSizeConstrainted函数,顾名思义,使添加了contentview的视图的框架相同。所以
width
的
nameLabel
等于
contentView
。
但在定义
label
,您给标签的宽度值为
floor((UIScreen.main.bounds.size.width) / 3)
UIView-Encapsulated-Layout-Width' UIView:0x13d467360.width == 0
这个信息基本上就是给我们提供信息。你必须付出
priority
其中一个约束条件是:
-
声明中的nameLabel宽度约束=
地板((UIScreen.main.bounds.size.width)/3)
-
name相等内容中的标签宽度约束查看中的宽度
addSameSizeConstrained
可以通过优先考虑以下约束之一来解决此问题:
let widthConstant = floor((UIScreen.main.bounds.size.width) / 3)
let const = label.widthAnchor.constraint(equalToConstant: widthConstant)
const.priority = .defaultLow
const.isActive = true
return label
您第一次加载时没有在控制台中收到此警告,因为您的集合视图的估计大小必须为
Automatic
.如果您更改
None
,您将在第一次加载时看到此警告。