Improve the password length slider
- the slider appears after clicking "generate" - the slider goes away after clicking a non-password-related section - generate new password if the slider value changes
This commit is contained in:
parent
e4e20b1d6f
commit
5a02cb726e
6 changed files with 75 additions and 25 deletions
|
|
@ -9,15 +9,21 @@
|
|||
|
||||
import UIKit
|
||||
|
||||
protocol PasswordSettingSliderTableViewCellDelegate {
|
||||
func generateAndCopyPassword()
|
||||
}
|
||||
|
||||
class SliderTableViewCell: ContentTableViewCell {
|
||||
|
||||
@IBOutlet weak var titleLabel: UILabel!
|
||||
@IBOutlet weak var valueLabel: UILabel!
|
||||
@IBOutlet weak var slider: UISlider!
|
||||
|
||||
var delegate: UITableViewController?
|
||||
|
||||
var roundedValue: Int {
|
||||
get {
|
||||
return Int(slider.value)
|
||||
return Int(valueLabel.text!)!
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -33,9 +39,17 @@ class SliderTableViewCell: ContentTableViewCell {
|
|||
}
|
||||
|
||||
@IBAction func handleSliderValueChange(_ sender: UISlider) {
|
||||
let roundedValue = round(sender.value)
|
||||
sender.value = roundedValue
|
||||
valueLabel.text = "\(Int(roundedValue))"
|
||||
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()
|
||||
}
|
||||
}
|
||||
|
||||
func reset(title: String, minimumValue: Int, maximumValue: Int, defaultValue: Int) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue