120 lines
5.2 KiB
Swift
120 lines
5.2 KiB
Swift
import UIKit
|
|
import TGPControls
|
|
|
|
class ViewController: UIViewController {
|
|
@IBOutlet weak var oneTo10Labels: TGPCamelLabels!
|
|
@IBOutlet weak var oneTo10Slider: TGPDiscreteSlider!
|
|
|
|
@IBOutlet weak var alphabetLabels: TGPCamelLabels!
|
|
@IBOutlet weak var alphabetSlider: TGPDiscreteSlider!
|
|
|
|
@IBOutlet var pictureLabels: TGPCamelLabels!
|
|
@IBOutlet var pictureSlider: TGPDiscreteSlider!
|
|
|
|
@IBOutlet weak var switch1Camel: TGPCamelLabels!
|
|
@IBOutlet weak var switch2Camel: TGPCamelLabels!
|
|
|
|
@IBOutlet weak var controlEventsLabel: UILabel!
|
|
@IBOutlet weak var dualColorSlider: TGPDiscreteSlider!
|
|
@IBOutlet weak var stepper: UIStepper!
|
|
|
|
private func localizedStrings(_ key: String) -> [String] {
|
|
return NSLocalizedString(key, comment: "")
|
|
.split(separator: " ")
|
|
.map({ (substring) -> String in
|
|
return "\(substring)"
|
|
})
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
oneTo10Labels.names = localizedStrings("oneTo10Labels.numbers")
|
|
|
|
alphabetLabels.names = localizedStrings("alphabetLabels.letters")
|
|
alphabetSlider.tickCount = alphabetLabels.names.count // Number of letters in the given alphabet
|
|
|
|
pictureLabels.names = [NSLocalizedString("pictureLabels.east", comment: ""),
|
|
NSLocalizedString("pictureLabels.west", comment: ""),
|
|
NSLocalizedString("pictureLabels.up", comment: ""),
|
|
NSLocalizedString("pictureLabels.down", comment: ""),
|
|
NSLocalizedString("pictureLabels.north", comment: ""),
|
|
NSLocalizedString("pictureLabels.south", comment: "")]
|
|
|
|
switch1Camel.names = [NSLocalizedString("switch1Camel.off", comment: ""),
|
|
NSLocalizedString("switch1Camel.on", comment: "")]
|
|
|
|
switch2Camel.names = [NSLocalizedString("switch2Camel.off", comment: ""),
|
|
NSLocalizedString("switch2Camel.on", comment: "")]
|
|
|
|
|
|
// Automatically track tick spacing changes and UIControlEventValueChanged
|
|
alphabetSlider.ticksListener = alphabetLabels
|
|
oneTo10Slider.ticksListener = oneTo10Labels
|
|
pictureSlider.ticksListener = pictureLabels
|
|
|
|
// UIControlEvents
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchDown(_:event:)), for: .touchDown)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchDownRepeat(_:event:)), for: .touchDownRepeat)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchDragInside(_:event:)), for: .touchDragInside)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchDragOutside(_:event:)), for: .touchDragOutside)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchDragEnter(_:event:)), for: .touchDragEnter)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchDragExit(_:event:)), for: .touchDragExit)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchUpInside(_:event:)), for: .touchUpInside)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchUpOutside(_:event:)), for: .touchUpOutside)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.touchCancel(_:event:)), for: .touchCancel)
|
|
dualColorSlider.addTarget(self, action: #selector(ViewController.valueChanged(_:event:)), for: .valueChanged)
|
|
}
|
|
|
|
// MARK: - UISwitch
|
|
|
|
@IBAction func switch1ValueChanged(_ sender: UISwitch) {
|
|
switch1Camel.value = (sender.isOn) ? 1 : 0
|
|
}
|
|
|
|
@IBAction func switch2TouchUpInside(_ sender: UISwitch) {
|
|
switch2Camel.value = (sender.isOn) ? 1 : 0
|
|
}
|
|
|
|
// MARK: - UIControlEvents
|
|
|
|
@objc func touchDown(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchDown"
|
|
}
|
|
@objc func touchDownRepeat(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchDownRepeat"
|
|
}
|
|
@objc func touchDragInside(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchDragInside"
|
|
}
|
|
@objc func touchDragOutside(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchDragOutside"
|
|
}
|
|
@objc func touchDragEnter(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchDragEnter"
|
|
}
|
|
@objc func touchDragExit(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchDragExit"
|
|
}
|
|
@objc func touchUpInside(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchUpInside"
|
|
}
|
|
@objc func touchUpOutside(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchUpOutside"
|
|
}
|
|
@objc func touchCancel(_ sender: UIControl, event:UIEvent) {
|
|
controlEventsLabel.text = "touchCancel"
|
|
}
|
|
@objc func valueChanged(_ sender: TGPDiscreteSlider, event:UIEvent) {
|
|
controlEventsLabel.text = "valueChanged"
|
|
stepper.value = Double(sender.value)
|
|
}
|
|
|
|
// MARK: - UIStepper
|
|
|
|
@IBAction func stepperValueChanged(_ sender: UIStepper) {
|
|
dualColorSlider.value = CGFloat(sender.value)
|
|
}
|
|
}
|
|
|