选择单元格时,将UICollectionView中的其他单元格调暗

时间:2020-09-16 02:14:26

标签: ios swift uicollectionview

我正在尝试为消息传递应用程序构建UICollectionView,其中UICollectionViewCell中的每个UICollectionView都对应一条消息。我正在使用MessageKit(扩展了UICollectionView)来处理消息。当用户点击一条消息时,我想显示有关该消息的信息(发送时间,用户对该消息的反应等)。

GroupMe通过以下方式非常优雅地做到这一点:(1)垂直扩展消息以显示信息,(2)将视图中的其余消息调暗并禁止用户交互。请注意,突出显示的cell仍启用交互功能。请参见下面的前后图像。

Before tapping message

After tapping message

在这里,我专注于实现(2),即,在轻按一条消息时,我想使所有其他cells变暗,并禁止它们的用户交互。我还希望能够对此更改进行动画处理,以使其在短时间内使所有其他cells变暗。当用户点击视图中的任意位置时,我希望突出显示的cell“取消突出显示”,并为所有单元格重新启用用户交互,并类似地为还原设置动画。

我对如何实现此行为有些困惑-关于如何在Swift中实现此想法?任何能使我朝正确方向入手的指针将不胜感激!

2 个答案:

答案 0 :(得分:0)

您可以为每个单元格的子视图添加一个UIView,但所选子视图除外。可以通过更改具有衰落/出现效果的alpha值来对此视图进行动画处理。

答案 1 :(得分:0)

您可以在自定义override中使用isSelected UICollectionViewCell 属性来处理用户交互和alpha的{​​{1}}选择,即

cell
相关问题