[真实设备上的UIView阴影问题-iOS

问题描述 投票:0回答:1

我有一个带有内部视图的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

这是表视图单元格结构:

enter image description here

我的问题是这个:

当我在模拟器上执行代码时,我得到了这个(这就是我想要的):

enter image description here

但是当我在真实设备上执行相同的代码时,我得到了:

enter image description here

为什么与前一张图片不同?

ios swift uitableview shadow
1个回答
0
投票

可能没有安全区域问题。然后您可以将此代码用于阴影

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
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.