1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-16 08:13:20 +00:00
Files
mobile/src/iOS.Core/Views/SliderTableViewCell.cs

61 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 SliderTableViewCell : ExtendedUITableViewCell
{
private string _detailRightSpace = "\t";
private int _value;
public SliderTableViewCell(string labelName, int value, int min, int max)
: base(UITableViewCellStyle.Value1, nameof(SwitchTableViewCell))
{
TextLabel.Text = labelName;
TextLabel.TextColor = ThemeHelpers.TextColor;
DetailTextLabel.TextColor = ThemeHelpers.MutedColor;
Slider = new UISlider
{
MinValue = min,
MaxValue = max,
TintColor = ThemeHelpers.PrimaryColor,
Frame = new CoreGraphics.CGRect(0, 0, 180, 30),
BackgroundColor = ThemeHelpers.BackgroundColor
};
Slider.ValueChanged += Slider_ValueChanged;
Value = value;
AccessoryView = Slider;
}
private void Slider_ValueChanged(object sender, EventArgs e)
{
var newValue = Convert.ToInt32(Math.Round(Slider.Value, 0));
bool valueChanged = newValue != Value;
Value = newValue;
if (valueChanged)
{
ValueChanged?.Invoke(this, null);
}
}
public UISlider Slider { get; set; }
public int Value
{
get { return _value; }
set
{
_value = value;
Slider.Value = value;
DetailTextLabel.Text = string.Concat(value.ToString(), _detailRightSpace);
}
}
public event EventHandler ValueChanged;
}
}