如何正确使用 UISwitch?
How to use UISwitch correctly?
我的代码不工作。我不知道为什么。问题是 switchChanged 函数的 属性。如果 属性 为空,则代码有效。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let rect = CGRectMake(130, 100, 0, 0)
let uiSwitch = UISwitch(frame: rect)
uiSwitch.setOn(true, animated: true)
uiSwitch.addTarget(self, action: "switchChanged", forControlEvents: UIControlEvents.ValueChanged)
self.view.addSubview(uiSwitch)
}
func switchChanged(uiSwitch: UISwitch) {
var message = "Turn on the switch"
if uiSwitch.on {
message = "Turn off the switch"
} else {
message = "Turn on the switch"
}
let alert = UIAlertController(title: "Information", message: message, preferredStyle: UIAlertControllerStyle.Alert)
let action = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)
alert.addAction(action)
self.presentViewController(alert, animated: true, completion: nil)
}
错误:"libc++abi.dylib: terminating with uncaught exception of type NSException"
"switchChanged"
不是正确的选择器名称,您应该使用 "switchChanged:"
来说明参数。 switchChanged
将是一个没有参数的方法。
此外,在 Swift 中,您应该改用 #selector(switchChanged(_:))
。这将在编译期间验证选择器的存在。
我的代码不工作。我不知道为什么。问题是 switchChanged 函数的 属性。如果 属性 为空,则代码有效。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let rect = CGRectMake(130, 100, 0, 0)
let uiSwitch = UISwitch(frame: rect)
uiSwitch.setOn(true, animated: true)
uiSwitch.addTarget(self, action: "switchChanged", forControlEvents: UIControlEvents.ValueChanged)
self.view.addSubview(uiSwitch)
}
func switchChanged(uiSwitch: UISwitch) {
var message = "Turn on the switch"
if uiSwitch.on {
message = "Turn off the switch"
} else {
message = "Turn on the switch"
}
let alert = UIAlertController(title: "Information", message: message, preferredStyle: UIAlertControllerStyle.Alert)
let action = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)
alert.addAction(action)
self.presentViewController(alert, animated: true, completion: nil)
}
错误:"libc++abi.dylib: terminating with uncaught exception of type NSException"
"switchChanged"
不是正确的选择器名称,您应该使用 "switchChanged:"
来说明参数。 switchChanged
将是一个没有参数的方法。
此外,在 Swift 中,您应该改用 #selector(switchChanged(_:))
。这将在编译期间验证选择器的存在。