隐藏stackView时违反了约束条件

问题描述 投票:0回答:1

我正在使用collectionView作为聊天框。有一个代码可以检测是否有附件,并通过

来更改collectionViewCell的高度
(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath

cellForItemAt中,我显示或隐藏stackView,取决于它是否是文件。

正如我从print()所见,此方法首先执行,然后执行sizeForItemAt。为什么当我在stackView.hidden = true中设置cellForItemAt并且是文本消息(然后在sizeForItemAt中我为文本消息设置高度)时,为什么打破了隐藏的stackView的约束?

隐藏stackView时如何打破约束?基本上没有逻辑。...

ios swift uicollectionview constraints uistackview
1个回答
0
投票

NOT删除与该元素相关的所有约束。

对于任何UI对象(不仅仅是堆栈视图),如果要在隐藏时删除其“空间”,则有几个选项。1)将其和其他对象嵌入堆栈视图中(是的,您可以将堆栈视图嵌入另一个堆栈视图中)。隐藏已安排的子视图时,堆栈视图会自动删除空间。

2)向要隐藏的对象

上方

添加一个附加的垂直空间约束。为约束赋予不同的优先级,并在想要显示或隐藏相关对象时更改优先级。这是一个执行此操作的示例:https://stackoverflow.com/a/60817954/6257435
© www.soinside.com 2019 - 2024. All rights reserved.