我在应用程序中做了五彩纸屑,但是所有其他按钮和开关都停止工作



如代码所示,我的开关在打开时启动了动画,但是无论如何显示了五彩纸屑,并且不允许我拥有按钮交互!

@IBAction func `switch`(_ sender: UISwitch) {
    if(sender.isOn==true){
        senderText.text="YAYA!"
        supportText.text="we have added a reminder for you"
        supportIcon.isHidden=false
        support2.isHidden=true
        confettiView.startConfetti()
    }
    else{
        senderText.text="OKAY"
        supportText.text="you wont be disturbed"
        supportIcon.isHidden=true
        support2.isHidden=false
    }
}

var confettiView: SAConfettiView!
override func viewDidLoad() {
    super.viewDidLoad()

    confettiView = SAConfettiView(frame: self.view.bounds)
    confettiView.colors = [UIColor(red:0.95, green:0.40, blue:0.27, alpha:1.0),
                           UIColor(red:1.00, green:0.78, blue:0.36, alpha:1.0),
                           UIColor(red:0.48, green:0.78, blue:0.64, alpha:1.0),
                           UIColor(red:0.30, green:0.76, blue:0.85, alpha:1.0),
                           UIColor(red:0.58, green:0.39, blue:0.55, alpha:1.0)]
    confettiView.intensity = 0.5
    confettiView.type = .Diamond
    confettiView.type = .Confetti
    view.addSubview(confettiView)

正在发生的事情是您的五置视图在所有其他视图的顶部,并且正在接收所有触摸,防止按钮和开关接收它们

confettiView.isUserInteractionEnabled = false

在您的五彩纸条初始化之后将要立即插入的代码解决问题,因为五彩纸屑视图将不再拦截所有触摸。

另一个解决方案(取决于您的设计要求)是将所有按钮放在正面,如果您有参考的参考,或者如果您想要定义的持续时间的动画,则将所有按钮删除。

也请不要那个

confettiView.type = .Diamond
confettiView.type = .Confetti

将导致类型为.confetti。考虑删除两种类型分配语句之一。:)

您的confettiView高于您所有其他UIView'S和UIButton'S。

confettiView = SAConfettiView(frame: self.view.bounds)使您的confettiView大小。然后,您将其添加到view中使用view.addSubview(confettiView)。动画后删除confettiView

例如:

confettiView.removeFromSuperview()

相关内容

最新更新