我有一个带有内部视图的tableview单元,我想在其中添加阴影。
因此,我添加此代码:
self.PrimaView.layer.shadowPath = UIBezierPath(rect: self.PrimaView.bounds).cgPath
self.PrimaView.layer.shadowRadius = 3
self.PrimaView.layer.shadowOffset = .zero
self.PrimaView.layer.shadowOpacity = 3
这是表视图单元格结构:
我的问题是这个:
当我在模拟器上执行代码时,我得到了这个(这就是我想要的):
但是当我在真实设备上执行相同的代码时,我得到了:
为什么与前一张图片不同?
可能没有安全区域问题。然后您可以将此代码用于阴影
import UIKit
@IBDesignable
class CardViewMaterial: UIView {
// @IBInspectable var cornerRadius: CGFloat = 2
@IBInspectable var shadowOffsetWidth: Int = 0
@IBInspectable var shadowOffsetHeight: Int = 3
@IBInspectable var shadowColor: UIColor? = UIColor.black
@IBInspectable var shadowOpacity: Float = 0.5
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
}
}