diff --git a/src/iOS.Core/Views/SliderTableViewCell.cs b/src/iOS.Core/Views/SliderTableViewCell.cs new file mode 100644 index 000000000..0c57671e4 --- /dev/null +++ b/src/iOS.Core/Views/SliderTableViewCell.cs @@ -0,0 +1,38 @@ +using System; +using UIKit; + +namespace Bit.iOS.Core.Views +{ + public class SliderTableViewCell : UITableViewCell + { + private string _detailRightSpace = "\t"; + + public SliderTableViewCell(string labelName, float value, float min, float max) + : base(UITableViewCellStyle.Value1, nameof(SwitchTableViewCell)) + { + TextLabel.Text = labelName; + DetailTextLabel.Text = string.Concat(value.ToString(), _detailRightSpace); + DetailTextLabel.TextColor = new UIColor(red: 0.47f, green: 0.47f, blue: 0.47f, alpha: 1.0f); + + Slider = new UISlider + { + MinValue = min, + MaxValue = max, + Value = value, + TintColor = new UIColor(red: 0.24f, green: 0.55f, blue: 0.74f, alpha: 1.0f), + Frame = new CoreGraphics.CGRect(0, 0, 180, 20) + }; + Slider.ValueChanged += Slider_ValueChanged; + + AccessoryView = Slider; + } + + private void Slider_ValueChanged(object sender, EventArgs e) + { + Slider.Value = Convert.ToInt32(Math.Round(Slider.Value, 0)); + DetailTextLabel.Text = string.Concat(Slider.Value.ToString(), _detailRightSpace); + } + + public UISlider Slider { get; set; } + } +} diff --git a/src/iOS.Core/iOS.Core.csproj b/src/iOS.Core/iOS.Core.csproj index 72016c1ba..45cf129b1 100644 --- a/src/iOS.Core/iOS.Core.csproj +++ b/src/iOS.Core/iOS.Core.csproj @@ -71,6 +71,7 @@ + diff --git a/src/iOS.Extension/PasswordGeneratorViewController.cs b/src/iOS.Extension/PasswordGeneratorViewController.cs index 221efcd88..c1f21f121 100644 --- a/src/iOS.Extension/PasswordGeneratorViewController.cs +++ b/src/iOS.Extension/PasswordGeneratorViewController.cs @@ -35,6 +35,7 @@ namespace Bit.iOS.Extension public SwitchTableViewCell SpecialCell { get; set; } = new SwitchTableViewCell("!@#$%^&*"); public StepperTableViewCell MinNumbersCell { get; set; } = new StepperTableViewCell("Minimum Numbers", 1, 0, 5, 1); public StepperTableViewCell MinSpecialCell { get; set; } = new StepperTableViewCell("Minimum Special", 1, 0, 5, 1); + public SliderTableViewCell LengthCell { get; set; } = new SliderTableViewCell("Length", 10, 5, 64); public override void ViewWillAppear(bool animated) { @@ -113,7 +114,7 @@ namespace Bit.iOS.Extension if(indexPath.Row == 0) { - // TODO: Length slider + return _controller.LengthCell; } else if(indexPath.Row == 1) {