mirror of
https://github.com/bitwarden/mobile.git
synced 2024-09-27 03:52:57 +02:00
55 lines
1.7 KiB
C#
55 lines
1.7 KiB
C#
using Bit.iOS.Core.Controllers;
|
|
using Bit.iOS.Core.Utilities;
|
|
using System;
|
|
using UIKit;
|
|
|
|
namespace Bit.iOS.Core.Views
|
|
{
|
|
public class StepperTableViewCell : ExtendedUITableViewCell
|
|
{
|
|
// Give some space to the right of the detail in between the spacer.
|
|
// This is a bit of a hack, but I did not see a way to specify a margin on the
|
|
// detaul DetailTextLabel or AccessoryView
|
|
private string _detailRightSpace = "\t";
|
|
private int _value;
|
|
|
|
public StepperTableViewCell(string labelName, int value, int min, int max, int increment)
|
|
: base(UITableViewCellStyle.Value1, nameof(SwitchTableViewCell))
|
|
{
|
|
TextLabel.Text = labelName;
|
|
TextLabel.TextColor = ThemeHelpers.TextColor;
|
|
DetailTextLabel.TextColor = ThemeHelpers.MutedColor;
|
|
|
|
Stepper = new UIStepper
|
|
{
|
|
TintColor = ThemeHelpers.MutedColor,
|
|
MinimumValue = min,
|
|
MaximumValue = max
|
|
};
|
|
Stepper.ValueChanged += Stepper_ValueChanged;
|
|
Value = value;
|
|
|
|
AccessoryView = Stepper;
|
|
}
|
|
|
|
private void Stepper_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
Value = Convert.ToInt32(Stepper.Value);
|
|
ValueChanged?.Invoke(this, null);
|
|
}
|
|
|
|
public UIStepper Stepper { get; private set; }
|
|
public int Value
|
|
{
|
|
get { return _value; }
|
|
set
|
|
{
|
|
_value = value;
|
|
Stepper.Value = value;
|
|
DetailTextLabel.Text = string.Concat(value.ToString(), _detailRightSpace);
|
|
}
|
|
}
|
|
public event EventHandler ValueChanged;
|
|
}
|
|
}
|