ios - 圆形 View 上的阴影不均匀

标签 ios swift uiview uicollectionview calayer

我有一个 collectionview 单元格,我有一个容器 UIView() ,它与 super View 有一定距离。 containerview 是圆形的,我正在尝试对其应用投影。我很好地实现了这一点,直到在某些单元格上它打破了阴影层并产生了不均匀的阴影效果。以下是当前结果: enter image description here

以下是我的代码:

extension UIView() {
    func dropShadow(color: UIColor, opacity: Float = 0.5, offSet: CGSize, radius: CGFloat = 1, scale: Bool = true) {
    self.layer.masksToBounds = false
    self.layer.shadowColor = color.cgColor
    self.layer.shadowOpacity = opacity
    self.layer.shadowOffset = offSet
    self.layer.shadowRadius = radius

    self.layer.shadowPath = UIBezierPath(roundedRect: self.bounds, cornerRadius: radius).cgPath
    self.layer.shouldRasterize = true
    self.layer.rasterizationScale = scale ? UIScreen.main.scale : 1
    }
}

下面是UICollectionViewCell.swift

override func layoutSubviews() {
    super.layoutSubviews()
    containerView.dropShadow(color: .lightGray, opacity: 6, offSet: CGSize(width: 0, height: 0), radius: 6, scale: true)
}

非常感谢任何帮助。

最佳答案

我在 collectionview 单元格内的 View 中使用了阴影。请看下面的链接

View Sample

这是在 cellforItem 里面

myCell.imgIcon.backgroundColor = UIColor.white
myCell.imgIcon.layer.shadowColor = UIColor.lightGray.cgColor
myCell.imgIcon.layer.shadowOpacity = 0.5
myCell.imgIcon.layer.shadowOffset = CGSize(width: 0, height: 0)
myCell.imgIcon.layer.shadowRadius = 5

关于ios - 圆形 View 上的阴影不均匀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53975098/

相关文章:

swift - Xcode Swift Firebase 如何创建 FIRAuth 的第二个实例

iOS - 在 WebView 中启用隐私浏览

objective-c - 将 Objective-C pod 作为依赖项导入到 Swift pod 中

ios - 我希望我的 View Controller 具有相同的自定义 UIView 组合,它们可以相互通信

iPhone - 获取 UIView 在整个 UIWindow 中的位置

ios - 如何从navigationController(viewControllers/stack)弹回指定viewController?

ios - 在 swift 中关闭 tableView 后再次查看复选标记

ios - 旋转设备时,动画 uiview 切换回其原始状态

ios - iPhone XR 旋转后返回 Root View Controller

ios - UITableViewCell 标签显示不正确