📜  在 uicollectionview 中添加框阴影 (1)

📅  最后修改于: 2023-12-03 15:07:50.606000             🧑  作者: Mango

在 UICollectionView 中添加框阴影

在 UICollectionView 中添加框阴影可以使组件看起来更加立体、醒目,增强用户体验。本文将介绍如何在 UICollectionView 中添加框阴影。

1. 使用 CALayer 添加阴影

要添加阴影,在 UICollectionView 的父视图上添加一个 CALayer,并将其作为 UICollectionView 的背景视图,从而在 UICollectionView 上显示阴影。以下是代码示例:

let shadowLayer = CALayer()
shadowLayer.frame = collectionView.bounds
shadowLayer.backgroundColor = UIColor.clear.cgColor
shadowLayer.shadowColor = UIColor.black.cgColor
shadowLayer.shadowOffset = CGSize(width: 0, height: 5)
shadowLayer.shadowOpacity = 0.2
shadowLayer.shadowRadius = 3.0
collectionView.superview?.layer.insertSublayer(shadowLayer, below: collectionView.layer)

代码中使用了 CALayer 的属性设置阴影:shadowColor 表示阴影颜色,shadowOffset 表示阴影偏移量,shadowOpacity 表示阴影不透明度,shadowRadius 表示阴影模糊半径。

2. 使用 UIView 添加阴影

另一种添加阴影的方式是使用 UIView 的 layer 属性。代码示例如下:

let shadowView = UIView(frame: collectionView.frame)
shadowView.layer.shadowColor = UIColor.black.cgColor
shadowView.layer.shadowOffset = CGSize(width: 0, height: 5)
shadowView.layer.shadowOpacity = 0.2
shadowView.layer.shadowRadius = 3.0
collectionView.superview?.insertSubview(shadowView, belowSubview: collectionView)
3. 自定义 UICollectionViewCell 的阴影

如果只想对 UICollectionViewCell 添加阴影,可以在自定义 UICollectionViewCell 的 layoutSubviews() 方法中添加阴影。以下是代码实现:

class ShadowCollectionViewCell: UICollectionViewCell {
    override func layoutSubviews() {
        super.layoutSubviews()
        
        layer.shadowColor = UIColor.black.cgColor
        layer.shadowOffset = CGSize(width: 0, height: 5)
        layer.shadowOpacity = 0.2
        layer.shadowRadius = 3.0
    }
}
总结

本文介绍了在 UICollectionView 中添加框阴影的三种方式,分别是使用 CALayer 添加阴影、使用 UIView 添加阴影,以及自定义 UICollectionViewCell 的阴影。根据实际项目需求选择相应的方案即可。