如代码所示,我的开关在打开时启动了动画,但是无论如何显示了五彩纸屑,并且不允许我拥有按钮交互!
@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()