Interface builder Xcode Interface Builder 9.1集合视图单元格的“太小”;“预期高度”;

Interface builder Xcode Interface Builder 9.1集合视图单元格的“太小”;“预期高度”;,interface-builder,uicollectionviewcell,Interface Builder,Uicollectionviewcell,最近,我遇到了界面生成器的一个问题,我没有解决这个问题。我使用的是UICollectionViewController,每当我添加单元格时,它都会立即显示一个橙色矩形(表示自动布局更新)。更新帧/单元格不会改变任何内容。与橙色标记相关的警告内容为“预期:高度=Y,实际:高度=X”,其中Y始终为X-100。也就是说:当我将自定义单元格高度设置为193时,它会显示“Expected:height=93”。无论我输入的大小,这种情况都会发生 这样做的问题是,我对子视图及其约束有很多困难。例如,如果添加

最近,我遇到了界面生成器的一个问题,我没有解决这个问题。我使用的是UICollectionViewController,每当我添加单元格时,它都会立即显示一个橙色矩形(表示自动布局更新)。更新帧/单元格不会改变任何内容。与橙色标记相关的警告内容为“预期:高度=Y,实际:高度=X”,其中Y始终为X-100。也就是说:当我将自定义单元格高度设置为193时,它会显示“Expected:height=93”。无论我输入的大小,这种情况都会发生

这样做的问题是,我对子视图及其约束有很多困难。例如,如果添加具有约束的子视图以保持与单元相同的高度,则它将显示为93(预期高度),即使我的单元应为193。布局变得不可能

我试着添加一个新的单元格,同样的问题。我尝试删除每个子视图并重新添加它们,但什么都没有

任何想法都是非常受欢迎的


多谢各位

我不确定这是否解决了问题,但一旦我执行以下操作,警告和问题就消失了:


在Interface Builder中选择CollectionViewController,并将大小设置为freeform,使高度更大,足够大以显示所有模板单元格。(另外:可能会刷新视图)。这为我解决了问题。

我认为这只是一个奇怪的错误
我删除了SB中的collectionViewController,然后创建了一个新的,问题消失了

在我的例子中,我添加了两个带有collection view Controller的collection view单元格。仅将view Controller设置为free form对我们没有帮助。需要更新大小,以消除警告

更新集合视图单元格框架,对我们没有帮助。警告将持续更改其长度

我尝试在不考虑警告的情况下工作,因为我已通过编程方式设置了集合视图的单元格大小,并且工作正常

找到解决方案!(代码9.2) 只有当您尝试将
UICollectionViewController
嵌入故事板中的
容器视图
时,才会出现此错误解决方法是在设置约束时删除segue,并在设置好约束后重新添加segue。

我还认为,将
UICollectionViewController
大小设置为
Freeform
可能是该错误的原因。如果是,请在更改大小之前尝试设置约束


希望这有帮助

这是Interface Builder的常见错误。我不知道确切的原因,但我相信这与将集合视图放置在没有确切大小的排列视图中有关。我在滚动视图、堆栈视图和容器视图中看到了这一点

有一个简单的修复方法,尽管我认为这是IB中的一个bug,应该由苹果公司来纠正,而不是绕过它进行黑客攻击。解决方案(至少对我来说,您的里程数可能会有所不同!)是将集合视图放置在普通的
UIView
中,并将其边缘固定在其上,然后将父视图放置在您希望集合视图的位置,并提供所需的所有约束


我通常发现在运行时实际上没有自动布局问题,这就是为什么我认为这纯粹是一个界面生成器错误。

我也有同样的问题,这是我在网上发现的唯一一个问题。这个错误太烦人了。这里也一样。当集合视图控制器具有非标准大小时,似乎会发生这种情况。在我的例子中,我将它嵌入到一个容器视图中。这对我来说是可行的,但我必须先删除指向它的序列。这暂时解决了这个问题,但在我的故事板中,问题在Interface Builder考虑足够长的时间后返回。(例如,在IB中重新打开情节提要时,警告可能会返回。)这似乎是Xcode中的一个bug,已经存在了好几个版本。