passforios/pass/Views/SliderTableViewCell.swift

65 lines
1.8 KiB
Swift
Raw Normal View History

//
// SliderTableViewCell.swift
// pass
//
// Created by Yishi Lin on 8/3/17.
// Copyright © 2017 Yishi Lin. All rights reserved.
//
import UIKit
protocol PasswordSettingSliderTableViewCellDelegate {
func generateAndCopyPassword()
}
class SliderTableViewCell: UITableViewCell, ContentProvider {
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var valueLabel: UILabel!
@IBOutlet weak var slider: UISlider!
2018-12-09 16:59:07 -08:00
var delegate: UITableViewController?
2018-12-09 16:59:07 -08:00
var roundedValue: Int {
get {
return Int(valueLabel.text!)!
}
}
2018-12-09 16:59:07 -08:00
@IBAction func handleSliderValueChange(_ sender: UISlider) {
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()
}
}
2018-12-09 16:59:07 -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)
2018-12-09 16:59:07 -08:00
// "not editable"
if minimumValue == maximumValue {
titleLabel.textColor = UIColor.gray
valueLabel.textColor = UIColor.gray
slider.isUserInteractionEnabled = false
}
}
2018-12-09 16:59:07 -08:00
func getContent() -> String? {
return nil
}
func setContent(content: String?) {}
}