2017-03-09 02:19:47 +08:00
|
|
|
//
|
|
|
|
|
// SliderTableViewCell.swift
|
|
|
|
|
// pass
|
|
|
|
|
//
|
|
|
|
|
// Created by Yishi Lin on 8/3/17.
|
|
|
|
|
// Copyright © 2017 Yishi Lin. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
|
|
2017-03-23 01:28:46 +08:00
|
|
|
protocol PasswordSettingSliderTableViewCellDelegate {
|
|
|
|
|
func generateAndCopyPassword()
|
|
|
|
|
}
|
|
|
|
|
|
2017-03-09 03:19:36 +08:00
|
|
|
class SliderTableViewCell: ContentTableViewCell {
|
2017-03-09 02:19:47 +08:00
|
|
|
|
|
|
|
|
@IBOutlet weak var titleLabel: UILabel!
|
|
|
|
|
@IBOutlet weak var valueLabel: UILabel!
|
|
|
|
|
@IBOutlet weak var slider: UISlider!
|
|
|
|
|
|
2017-03-23 01:28:46 +08:00
|
|
|
var delegate: UITableViewController?
|
|
|
|
|
|
2017-03-09 02:19:47 +08:00
|
|
|
var roundedValue: Int {
|
|
|
|
|
get {
|
2017-03-23 01:28:46 +08:00
|
|
|
return Int(valueLabel.text!)!
|
2017-03-09 02:19:47 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override func awakeFromNib() {
|
|
|
|
|
super.awakeFromNib()
|
|
|
|
|
// Initialization code
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override func setSelected(_ selected: Bool, animated: Bool) {
|
|
|
|
|
super.setSelected(selected, animated: animated)
|
|
|
|
|
|
|
|
|
|
// Configure the view for the selected state
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@IBAction func handleSliderValueChange(_ sender: UISlider) {
|
2017-03-23 01:28:46 +08:00
|
|
|
let oldRoundedValue = self.roundedValue
|
|
|
|
|
let newRoundedValue = Int(sender.value)
|
|
|
|
|
// proceed only when the rounded value gets updated
|
|
|
|
|
guard newRoundedValue != oldRoundedValue else {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
sender.value = Float(newRoundedValue)
|
|
|
|
|
valueLabel.text = "\(newRoundedValue)"
|
|
|
|
|
if let delegate: PasswordSettingSliderTableViewCellDelegate = self.delegate as? PasswordSettingSliderTableViewCellDelegate {
|
|
|
|
|
delegate.generateAndCopyPassword()
|
|
|
|
|
}
|
2017-03-09 02:19:47 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func reset(title: String, minimumValue: Int, maximumValue: Int, defaultValue: Int) {
|
|
|
|
|
titleLabel.text = title
|
|
|
|
|
slider.minimumValue = Float(minimumValue)
|
|
|
|
|
slider.maximumValue = Float(maximumValue)
|
|
|
|
|
slider.value = Float(defaultValue)
|
|
|
|
|
valueLabel.text = String(defaultValue)
|
2017-03-29 00:00:24 +08:00
|
|
|
|
|
|
|
|
// "not editable"
|
|
|
|
|
if minimumValue == maximumValue {
|
|
|
|
|
titleLabel.textColor = UIColor.gray
|
|
|
|
|
valueLabel.textColor = UIColor.gray
|
|
|
|
|
slider.isUserInteractionEnabled = false
|
|
|
|
|
}
|
2017-03-09 02:19:47 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|