Ios 如何在swift 4.2中为UITableViewCell的自定义视图设置阴影?

Ios 如何在swift 4.2中为UITableViewCell的自定义视图设置阴影?,ios,swift,layer,shadow,Ios,Swift,Layer,Shadow,我尝试过这个,但对我无效: cell.totalView?.layer.shadowColor = UIColor.yellow.cgColor cell.totalView?.layer.shadowOffset = CGSize.zero cell.totalView?.layer.shadowOpacity = 1.0 cell.totalView?.layer.shadowRadius = 10 cell.totalView?.layer.shouldRasterize = true

我尝试过这个,但对我无效:

cell.totalView?.layer.shadowColor = UIColor.yellow.cgColor
cell.totalView?.layer.shadowOffset = CGSize.zero
cell.totalView?.layer.shadowOpacity = 1.0
cell.totalView?.layer.shadowRadius = 10
cell.totalView?.layer.shouldRasterize = true

在CustomViewCell中进行insideView并在awakeFromNib()中加载此函数


将masksToBounds设置为true

  cell.totalView?.layer.masksToBounds = true

只需在表格单元格中添加一个UIVIew,所有边的边距为8

创建一个名为
cardwiew.swift的文件

import UIKit

@IBDesignable
class CardView: UIView {

    @IBInspectable var cornerRadius: CGFloat = 2

    @IBInspectable var shadowOffsetWidth: Int = 0
    @IBInspectable var shadowOffsetHeight: Int = 1
    @IBInspectable var shadowColor: UIColor? = UIColor.black
    @IBInspectable var shadowOpacity: Float = 0.1

    override func layoutSubviews() {

        layer.cornerRadius = cornerRadius
        let shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius)
        layer.masksToBounds = false
        layer.shadowColor = shadowColor?.cgColor
        layer.shadowOffset = CGSize(width: shadowOffsetWidth, height: shadowOffsetHeight);
        layer.shadowOpacity = shadowOpacity
        layer.shadowPath = shadowPath.cgPath
    }
}

只需在故事板中添加自定义类

尝试从自定义单元格的
awakeFromNib
方法为自定义视图添加阴影

例如

在customTableViewCell类中添加以下方法

func dropShadow(view: UIView, shadowOpacity: Float = 0.2, shadowColor: CGColor = UIColor.gray.cgColor, shadowRadius: CGFloat = 5){
    view.layer.shadowColor = shadowColor
    view.layer.shadowOpacity = shadowOpacity
    view.layer.shadowOffset = CGSize.zero
    view.layer.shadowRadius = shadowRadius
}
并从
awakeFromNib
方法调用它,如

override func awakeFromNib() {
    super.awakeFromNib()

    dropShadow(view: yourCustomView, shadowOpacity: 0.2, shadowColor: UIColor.yellow.cgColor, shadowRadius: 5)        
}

为什么不在其中使用视图并给它阴影
override func awakeFromNib() {
    super.awakeFromNib()

    dropShadow(view: yourCustomView, shadowOpacity: 0.2, shadowColor: UIColor.yellow.cgColor, shadowRadius: 5)        
}