2014-01-29 54 views
0

我在我的视图中有一个UISlider。当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拖动一路到最后?

回答

2

“我不希望发生什么事,当我我的拇指滑动到结束,除非我释放滑块”

执行此操作。它只会在触摸释放后才会触发。

_seekBar.continuous = NO; 
+0

是的如果你看看第一个代码块,我有。这是C#,因为我使用Xamarin。 –

+0

我不认为有任何方法检查滑块是否达到了最大值/最大值。你可以做的是检查滑块的OnValueChanged值是否小于指定的最大值 –

相关问题