【发布时间】: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 被拖到最后时会触发什么事件?
【问题讨论】: