Я пытаюсь создать UISwitch программно (нет IBOutlets или IBActions), и я не могу понять, как заставить переключатель изменять состояния при нажатии. Я думал, что ...Swift - UISwitch не обновляется при переключении On/Off
mySwitch.addTarget()
... назвали бы каждый раз, когда переключатель был переключен On/Off, но это, кажется, не так. Может кто-нибудь объяснить, что я делаю неправильно и как исправить это.
import UIKit
import XCPlayground
let view = UIView(frame: CGRect(x: 0, y: 0, width: 320 * 0.75, height: 568 * 0.75))
view.backgroundColor = UIColor.whiteColor()
view.layer.borderColor = UIColor.grayColor().CGColor
view.layer.borderWidth = 1
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 320 * 0.75, height: 50))
label.text = "Label"
label.textAlignment = NSTextAlignment.Center
view.addSubview(label)
func switchChanged(sender: UISwitch!) {
if sender.on == true {
label.text = "Switch is ON"
} else if sender.on == false {
label.text = "Switch is OFF"
}
}
let mySwitch = UISwitch()
mySwitch.center = view.center
mySwitch.setOn(true, animated: false)
mySwitch.onTintColor = UIColor.redColor()
mySwitch.addTarget(label, action: Selector(switchChanged(mySwitch)), forControlEvents: UIControlEvents.ValueChanged)
view.addSubview(mySwitch)
XCPlaygroundPage.currentPage.liveView = view
Не пытайтесь играть с таким серьезным взаимодействием на детской площадке. Это как поцелуй лягушки: ничего не происходит, и это раздражает лягушку. – matt