Есть несколько событий , которые можно вызвать в UISlider :
- TouchDragExit : возбужденоСобытия TouchDragExit.
- TouchUpInside : вызывается при событиях TouchUpInside.
- TouchUpOutside : вызывается при событиях TouchUpOutside.
Вы можете вызвать одного из них, чтобы попробовать следующее:
Control.TouchDragExit += Slider_TouchDragExit;
private void Slider_TouchDragExit(object sender, EventArgs e)
{
throw new NotImplementedException();
}
================================== Обновление ==========================================
После тестирования в локальном проекте, выше трех методов работает только TouchUpInside
, и не найти причину, по которой другие методы не работают в iOS рендерере. Я также тестирую методы рендерера в Android, это работает. Это странное явление.
Тем не менее, я нашел обходной путь для вызова методов в качестве функции перетаскивания.
[assembly: ExportRenderer(typeof(CustomSlider), typeof(CustomSliderRenderer))]
namespace App8.iOS
{
public class CustomSliderRenderer : SliderRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
base.OnElementChanged(e);
if (null != Control)
{
CustomSlider customSlider = (CustomSlider)e.NewElement;
customSlider.DragCompleted += CustomSlider_DragCompleted;
}
}
private void CustomSlider_DragCompleted(object sender, EventArgs e)
{
Console.WriteLine("------CustomSlider_DragCompleted-------");
}
}
Здесь, CustomSlider
- мой пользовательскийСлайдер в Xamarin.Forms. Если позже найдите причину, по которой TouchDragExit
не просыпается, обновите здесь.