,这将无法实现您的目标
当我打开uiswitch时,我试图使其隐藏背景图像,但我会得到错误:线程1:致命错误:在解开可选值时出乎意料地发现了无效。我究竟做错了什么?当它在主故事板上时,它可以正常工作,但是在设置板上时,它不是。
代码:
@IBAction func switchBackground(_ sender: UISwitch) {
if (sender.isOn == true) {
Background!.isHidden = false
amountDue.textColor = UIColor.white
amountMoney.textColor = UIColor.white
amountPeople.textColor = UIColor.white
}else {
Background!.isHidden = true
amountDue.textColor = UIColor.black
amountMoney.textColor = UIColor.black
amountPeople.textColor = UIColor.black
amountDueText.textColor = UIColor.black
amountPeopleText.textColor = UIColor.black
amountMoneyText.textColor = UIColor.black
}
}
您的问题在这里
Background!.isHidden = false
您无法更改当前不在Active View Controller中的UIImageView的属性
您可以使用
Background?.isHidden = false
,如果图像视图为nil
检查@outlet是否通过故事板连接为您的背景。否则它将崩溃,这就是告诉您的。
另外,如果背景是@outlet,则无需强迫将其拆开!除非您以编程方式初始化它,并且它是一个可变l,如果是的,则请确保初始化背景:UIView()
另一个注释是在开始时用小字母定义变量,而不是背景。