将阴影添加到UIView的顶部

Apo*_*llo 10 objective-c uiview ios

如何在我的顶部添加阴影UIView我尝试过以下但没有运气......

childView.layer.cornerRadius = 5;
childView.layer.masksToBounds = YES;
childView.layer.shadowOffset = CGSizeMake(-15, 20);
childView.layer.shadowRadius = 5;
childView.layer.shadowOpacity = 0.5;
Run Code Online (Sandbox Code Playgroud)

Rya*_*bin 16

Swift 3扩展:

这包括我正在处理的应用的默认值,但您可以更改它们以匹配您在应用中所需的样式.

enum VerticalLocation: String {
    case bottom
    case top  
}

extension UIView {
    func addShadow(location: VerticalLocation, color: UIColor = .black, opacity: Float = 0.5, radius: CGFloat = 5.0) {
        switch location {
        case .bottom:
             addShadow(offset: CGSize(width: 0, height: 10), color: color, opacity: opacity, radius: radius)
        case .top:
            addShadow(offset: CGSize(width: 0, height: -10), color: color, opacity: opacity, radius: radius)
        }
    }

    func addShadow(offset: CGSize, color: UIColor = .black, opacity: Float = 0.5, radius: CGFloat = 5.0) {
        self.layer.masksToBounds = false
        self.layer.shadowColor = color.cgColor
        self.layer.shadowOffset = offset
        self.layer.shadowOpacity = opacity
        self.layer.shadowRadius = radius
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这似乎为所有子视图添加了阴影 (2认同)

Mis*_*cha 5

您需要将子视图的masksToBounds属性设置为NO,以使阴影可见.

childView.layer.masksToBounds = NO;
Run Code Online (Sandbox Code Playgroud)


Lit*_*hor 0

尝试将 maskToBounds 设置为 NO。根据此链接Whats the best way to add a dropshadow to my UIView,使得“YES”将剪切超出视图边界的图层。