我有一个带有圆角和阴影掉落单元格的集合视图。当单元格即将被导航栏覆盖时,单元格的阴影突然消失,而不是平滑地移出视图。以下是代码:
contentView.layer.cornerRadius = 20
contentView.layer.masksToBounds = true
layer.shadowColor = UIColor.black.cgColor
layer.shadowOpacity = 0.1
layer.shadowOffset = CGSize(width: 0, height: 5.0)
layer.shadowRadius = 5.0
layer.shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: contentView.layer.cornerRadius - 3).cgPath
layer.shouldRasterize = true
layer.rasterizationScale = UIScreen.main.scale
这是显示问题的gif。专注于细胞底部的阴影。导航栏为白色。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:0)
我认为这只是因为细胞确实被从视野中移除了,因此它的阴影随之消失。此时,单元格的框架在视图之外,而阴影仍然可见(阴影在框架周围) - 但是当框架离开视图时,collectionView
将移除单元格。所以影子突然消失了。
我会怎么做才非常简单。我会重构代码以将当前单元格内容包装到新的UIView
中 - 让我们调用它wrapper
,这将丢弃阴影。然后将此wrapper
放入单元格contentView
中,以便wrapper
及其阴影适合contentView
。然后阴影将成为contentView
帧的一部分,这意味着只有当整个单元格被隐藏时,阴影才会从屏幕上消失。
当然,您必须修改单元格的collectionView
大小,因为现在单元格将更大以包含阴影。
答案 1 :(得分:0)
而不是设置contentView
的阴影,而是将所有内容嵌入UIView
并设置该视图的阴影。然后你必须增加你的细胞高度20 points
或你的阴影高度。这应该可行。我猜。