Xcode Interface Builder 9.1 集合视图单元格太小 "expected height"
Xcode Interface Builder 9.1 Collection View Cells have too small "expected height"
最近,我遇到了 Interface Builder 的问题,但未能解决。我正在使用 UICollectionViewController,每当我添加一个 Cell 时,它会立即显示一个橙色矩形(表示自动布局更新)。更新 frame/cell 不会改变任何东西。与橙色标记关联的警告显示为 "Expected: height=Y, Actual: height=X",其中 Y 是 always exactly X-100。即:当我将自定义单元格高度设置为 193 时,它显示 "Expected: height=93"。无论我输入哪种尺寸,都会发生这种情况。
这个问题是我对子视图及其约束有很多困难。例如,如果我添加一个带有约束的子视图以保持与单元格相同的高度,它将显示为 93(预期高度),即使我的单元格应该是 193。布局变得不可能。
我尝试添加一个新单元格,同样的问题。我尝试删除每个子视图并重新添加它们,什么都没有。
非常欢迎任何想法。
非常感谢!
我不确定这是否解决了问题,但是当我执行以下操作后警告和问题就消失了:
Select Interface Builder 中的 CollectionViewController 并将大小设置为自由形式并使高度更大,大到足以显示所有模板单元格。 (加上:也许刷新视图)。这解决了我的问题。
我认为这只是一个奇怪的错误
我删除了SB中的collectionViewController,然后新建一个,问题消失了
在我的例子中,我添加了两个集合视图单元格,集合视图 Controller.Only 将视图控制器设置为自由形式对我们没有帮助。需要更新大小,以消除警告。
正在更新集合视图单元格框架,对我们没有帮助。警告将不断改变其长度。
我尝试在不考虑警告的情况下工作,因为我已经以编程方式设置了我的集合视图单元格大小并且它确实按预期工作。
已找到解决方案! (Xcode 9.2)
该错误似乎只在您尝试将 UICollectionViewController
嵌入情节提要中的 Container View
时才会发生。 解决方法是在设置约束时删除 segue,并在设置好约束后 re-add 删除 segue。
我还认为将 UICollectionViewController
大小设置为 Freeform
可能是造成错误的原因。如果是这样,请尝试在更改大小之前设置约束。
希望对您有所帮助!
这是 Interface Builder 的常见错误。我不知道确切的原因,但我相信这与将集合视图放置在没有确切大小的排列视图中有关。我在将它们放在滚动视图、堆栈视图和容器视图中时看到了它。
有一个简单的修复方法,尽管我认为这是 IB 中的一个错误,应该由 Apple 纠正而不是绕过它。解决方案(至少对我来说 - 你的里程可能会有所不同!)是将集合视图放在一个普通的 UIView
中并将其边缘固定到它,然后将该父视图放置在你想要你的集合视图的位置它需要的所有约束。
我通常发现 运行 时实际上没有自动布局问题,这就是为什么我认为这纯粹是一个 Interface Builder 错误。
最近,我遇到了 Interface Builder 的问题,但未能解决。我正在使用 UICollectionViewController,每当我添加一个 Cell 时,它会立即显示一个橙色矩形(表示自动布局更新)。更新 frame/cell 不会改变任何东西。与橙色标记关联的警告显示为 "Expected: height=Y, Actual: height=X",其中 Y 是 always exactly X-100。即:当我将自定义单元格高度设置为 193 时,它显示 "Expected: height=93"。无论我输入哪种尺寸,都会发生这种情况。
这个问题是我对子视图及其约束有很多困难。例如,如果我添加一个带有约束的子视图以保持与单元格相同的高度,它将显示为 93(预期高度),即使我的单元格应该是 193。布局变得不可能。
我尝试添加一个新单元格,同样的问题。我尝试删除每个子视图并重新添加它们,什么都没有。
非常欢迎任何想法。
非常感谢!
我不确定这是否解决了问题,但是当我执行以下操作后警告和问题就消失了:
Select Interface Builder 中的 CollectionViewController 并将大小设置为自由形式并使高度更大,大到足以显示所有模板单元格。 (加上:也许刷新视图)。这解决了我的问题。
我认为这只是一个奇怪的错误 我删除了SB中的collectionViewController,然后新建一个,问题消失了
在我的例子中,我添加了两个集合视图单元格,集合视图 Controller.Only 将视图控制器设置为自由形式对我们没有帮助。需要更新大小,以消除警告。
正在更新集合视图单元格框架,对我们没有帮助。警告将不断改变其长度。
我尝试在不考虑警告的情况下工作,因为我已经以编程方式设置了我的集合视图单元格大小并且它确实按预期工作。
已找到解决方案! (Xcode 9.2)
该错误似乎只在您尝试将 UICollectionViewController
嵌入情节提要中的 Container View
时才会发生。 解决方法是在设置约束时删除 segue,并在设置好约束后 re-add 删除 segue。
我还认为将 UICollectionViewController
大小设置为 Freeform
可能是造成错误的原因。如果是这样,请尝试在更改大小之前设置约束。
希望对您有所帮助!
这是 Interface Builder 的常见错误。我不知道确切的原因,但我相信这与将集合视图放置在没有确切大小的排列视图中有关。我在将它们放在滚动视图、堆栈视图和容器视图中时看到了它。
有一个简单的修复方法,尽管我认为这是 IB 中的一个错误,应该由 Apple 纠正而不是绕过它。解决方案(至少对我来说 - 你的里程可能会有所不同!)是将集合视图放在一个普通的 UIView
中并将其边缘固定到它,然后将该父视图放置在你想要你的集合视图的位置它需要的所有约束。
我通常发现 运行 时实际上没有自动布局问题,这就是为什么我认为这纯粹是一个 Interface Builder 错误。