当 UISlider 一直拖到最后时会触发啥事件?
Posted
技术标签:
【中文标题】当 UISlider 一直拖到最后时会触发啥事件?【英文标题】:What event fires when a UISlider is dragged all the way to the end?当 UISlider 一直拖到最后时会触发什么事件? 【发布时间】:2014-01-29 21:01:41 【问题描述】:我的视图中有一个 UISlider。
_seekBar = new UISlider
MinValue = 0,
Continuous = false,
AutoresizingMask = UIViewAutoresizing.FlexibleWidth
;
_seekBar.TouchDown += OnTouchDown;
_seekBar.TouchDragInside += OnDragInside;
_seekBar.ValueChanged += OnValueChanged;
我已将三个事件设置如下。
private void OnTouchDown(object sender, EventArgs e)
// pause the watcher when you touch down
_audioPlayerService.Pause();
private void OnDragInside(object sender, EventArgs e)
// basically updates the number next to the slider as you drag
_viewModel.CurrentPositionMsec = (int)_seekBar.Value;
private void OnValueChanged(object sender, EventArgs e)
_viewModel.UserSeekPosition = (int)_seekBar.Value;
if (_viewModel.SeekToCommand.CanExecute())
_viewModel.SeekToCommand.Execute(_viewModel);
_audioPlayerService.Start();
注意:观察者基本上是观察音频播放器并报告进度。
我遇到的问题是,如果我将滑块一直拖到最后(最右边),即使没有释放任何东西,我也会开始出现奇怪的行为。
尝试重新拖动不会停止观察者 滑块开始在我的拇指位置和观看的当前进度之间跳跃。 音频卡顿并跳到曲目的末尾。除非我松开滑块,否则当我将拇指滑到最后时,我不希望发生任何事情。
注意:如果我不一直寻找到最后,一切都会按预期进行
当 UISlider 被拖到最后时会触发什么事件?
【问题讨论】:
【参考方案1】:“除非我松开滑块,否则当我将拇指滑到最后时,我不希望发生任何事情”
这样做。它只会在触摸被释放后触发。
_seekBar.continuous = NO;
【讨论】:
是的,如果您查看第一个代码块,我就有了。因为我使用的是 Xamarin,所以它是 C#。 我认为没有任何方法可以检查滑块是否已达到结束/最大值。您可以做的是检查滑块的 OnValueChanged 值是否小于指定的最大值以上是关于当 UISlider 一直拖到最后时会触发啥事件?的主要内容,如果未能解决你的问题,请参考以下文章
当事件触发并尝试在不再存在的对象中执行事件处理程序时会发生啥?