Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 我需要删除内部阴影时,我点击一个按钮_Swift_Uibutton_Shadow - Fatal编程技术网

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()
          }
        }
      }