0

Want to customise the ios slider to increase the thickness of slider bar. i tried using scaling but it is scaling the whole slider including the thumbimage and text above slider.

shivanju0801
  • 131
  • 2
  • 14
  • I found a solution [https://stackoverflow.com/questions/45702803/uislider-with-increased-slider-size-but-no-thumb-distortion-in-ios-app/45704597]. but events of slider is not triggering after inheriting UISlider. Can anyone help me with that. – shivanju0801 May 10 '18 at 06:10

1 Answers1

1

There are two ways to implement this.

  1. MessagingCenter

  2. Create delegate for the custom slider and trigger it in CustomRenderer.

    Code:

    MySlider

    public class MySlider : Slider
    {
        public delegate void SlideEventHandler(double newValue);
        public SlideEventHandler SlideEvent;
    }
    

    Page

    public Page1 ()
    {
        InitializeComponent ();
        slider.SlideEvent += slideChange;
    }
    void slideChange(double newValue) {
        Debug.WriteLine(newValue);
    }
    

    MySliderRenderer

    protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
    {
        MySlideriOS slider = new MySlideriOS();
        slider.ValueChanged += Slider_ValueChanged;
        SetNativeControl(slider);
    
        base.OnElementChanged(e);
    }
    
    private void Slider_ValueChanged(object sender, EventArgs e)
    {
        MySlideriOS slider = sender as MySlideriOS;
        (Element as MySlider).SlideEvent(slider.Value);
    }
    
ColeX
  • 14,062
  • 5
  • 43
  • 240