Swift 我需要删除内部阴影时,我点击一个按钮
这是我的扩展,用于将内部阴影添加到按钮中。 我创建了所有我希望阴影进入按钮或视图的情况。Swift 我需要删除内部阴影时,我点击一个按钮,swift,uibutton,shadow,Swift,Uibutton,Shadow,这是我的扩展,用于将内部阴影添加到按钮中。 我创建了所有我希望阴影进入按钮或视图的情况。 public extension UIView { //不同的内部阴影样式 公共枚举内部卷影端 { 案例全部,左,右,顶部,底部,顶部和左侧,顶部和右侧,底部和左侧,底部和右侧,例外左侧,例外右侧,例外顶部,例外底部 } } 当我第一次看到我的按钮时,我使用如下代码: 在这种情况下,我想有阴影到我所有的按钮,我使用黑色 var shadowLayer : CAShapeLayer?
public extension UIView
{
//不同的内部阴影样式
公共枚举内部卷影端
{
案例全部,左,右,顶部,底部,顶部和左侧,顶部和右侧,底部和左侧,底部和右侧,例外左侧,例外右侧,例外顶部,例外底部
}
}
当我第一次看到我的按钮时,我使用如下代码:
在这种情况下,我想有阴影到我所有的按钮,我使用黑色
var shadowLayer : CAShapeLayer?
self.shadowLayer = okButton.addInnerShadow(onSide: UIView.innerShadowSide.all, shadowColor: UIColor.black, shadowSize: 10.0, shadowOpacity: 10.0)
当我在函数中单击我的按钮时,我需要删除此内部阴影:
@IBAction func btnAction(_ sender: DLRadioButton) {
if sender.tag == 1
{
statoBici = "ok"
print(statoBici)
setConfermaButton()
self.shadowLayer.removeFromSuperLayer()
}
修改UIView函数以返回CAShapeLayer:
public func addInnerShadow(onSide: innerShadowSide, shadowColor: UIColor, shadowSize: CGFloat, cornerRadius: CGFloat = 0.0, shadowOpacity: Float) -> CAShapeLayer
{
.
.
.
return shadowLayer
}
然后将变量或成员变量添加到类中:
class ViewController: UIViewController {
var shadowLayer : CAShapeLayer!
override func viewDidLoad() {
super.viewDidLoad()
self.shadowLayer = btnShadow.addInnerShadow(onSide: UIView.innerShadowSide.all, shadowColor: UIColor.black, shadowSize: 10.0, shadowOpacity: 10.0)
}
}
最后,从按钮中删除阴影层:
@IBAction func btnAction(_ sender: Any) {
if let btn = sender as? UIButton
{
if btn.tag == 1 {
self.shadowLayer.removeFromSuperlayer()
}
}
}
类型为“CAShapeLayer”的值没有成员“removeFromSuperLayer”我有此错误CAShapeLayer是从CALayer派生的,它具有removeFromSuperLayer函数。您是否已将shadowLayer声明为CAShapeLayer!而不是CAShapeLayer?不起作用我有相同的错误“类型'CAShapeLayer'的值没有成员'removeFromSuperLayer'”你能发布代码吗,它在我这边编译并移除阴影。
@IBAction func btnAction(_ sender: Any) {
if let btn = sender as? UIButton
{
if btn.tag == 1 {
self.shadowLayer.removeFromSuperlayer()
}
}
}