将阴影添加到选定的边缘UIView
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将阴影添加到选定的边缘UIView相关的知识,希望对你有一定的参考价值。
我需要创建带阴影的UIView,但我只需要在右边,左边,底边的阴影 - >顶边没有阴影。有可能这样做吗?我尝试了不同的偏移,但我没有实现我的目标。
答案
像这样的东西?
let yourView = UIView()
yourView.frame = CGRect(x: 50, y: 50, width: 100, height: 100)
yourView.backgroundColor = UIColor.blue // NEEDS A COLOR TO SHOW SHADOW
yourView.layer.shadowColor = UIColor.black.cgColor
yourView.layer.shadowOpacity = 1
yourView.layer.shadowOffset = CGSize.zero
yourView.layer.shadowRadius = 10
self.view.addSubview(yourView)
另一答案
在我个人看来,克服后一个问题的最好方法是创建一个UIView的@IBDesignable扩展并声明@IBInspectable属性,如下所述
public extension UIView {
// MARK: - Inspectables
/**
Defines the color of the shadow behind the view (defaults to nil).
*/
@IBInspectable public var shadowColor: UIColor? {
set {
if let color = newValue {
self.layer.shadowColor = color.cgColor
} else {
self.layer.shadowColor = nil
}
} get {
if let color = layer.shadowColor {
return UIColor(cgColor: color)
}
return nil
}
}
/**
Defines the radius of the shadow behind the view.
*/
@IBInspectable public var shadowRadius: CGFloat {
set(newValue) {
self.layer.shadowRadius = newValue
} get {
return self.layer.shadowRadius
}
}
/**
Defines the opacity of the shadow behind the view.
*/
@IBInspectable public var shadowOpacity: Float {
set(newValue) {
self.layer.shadowOpacity = newValue
} get {
return self.layer.shadowOpacity
}
}
/**
Defines the offset of the shadow behind the view.
*/
@IBInspectable public var shadowOffset: CGSize {
set(newValue) {
self.layer.shadowOffset = newValue
} get {
return self.layer.shadowOffset
}
}
}
之后,您将能够在故事板中为每个UIView(或继承自UIView的类)找到后面的参数。
但是,如果您以编程方式工作,则必须尝试使用shadowOffset
属性,直到获得所需的视觉效果。
以上是关于将阴影添加到选定的边缘UIView的主要内容,如果未能解决你的问题,请参考以下文章