阴影未在集合视图中显示

问题描述 投票:2回答:2
 override func awakeFromNib() {
         super.awakeFromNib()

       makeRoundedCorners()

        cellBackGroundView.layer.shadowColor = UIColor.black.cgColor
        cellBackGroundView.layer.shadowOffset = CGSize(width: 10, height: 10)
        cellBackGroundView.layer.shadowOpacity = 1
        cellBackGroundView.layer.shadowRadius = 4
        cellBackGroundView.clipsToBounds = true
        cellBackGroundView.layer.masksToBounds = true

    }

我正在尝试上面的代码,但是没有显示阴影,没有发现问题所在。

ios swift xcode uicollectionviewcell
2个回答
0
投票

您可以删除clipsToBounds = true属性

  self.shadowColor = color.cgColor
  self.shadowOffset = CGSize(width: 0.0, height: 1.4)
  self.shadowOpacity = opacity
  self.shadowRadius = 0.0
  self.masksToBounds = false

0
投票

这是因为您将圆角和阴影都应用于单个视图。

您应将圆角应用于第一个视图,并将阴影应用于另一个视图,它是第一个视图的超级视图。

例如,如果cellBackGroundView是单元格的子视图。那么您应该将圆角应用于cellBackGroundView并将阴影应用于cell(这是cellBackGroundView的超级视图)。

    addShadowToView(view: cell, value: 3)
    addCornerToView(view: cell.cellBackGroundView, value: 8)

让我与您分享我的功能,

对于阴影,

func addShadowToView (view : UIView, value: CGFloat) {
    view.layer.shadowColor = UIColor.lightGray.cgColor
    view.layer.shadowOffset = CGSize(width: value, height: value)
    view.layer.shadowOpacity = 1.0
    view.layer.shadowRadius = 2
    view.clipsToBounds = false
}

对于圆角,

func addCornerToView (view : UIView, value: CGFloat) {
    view.layer.cornerRadius = value
    view.clipsToBounds = true
}
© www.soinside.com 2019 - 2024. All rights reserved.