2014-01-29 84 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值是否小於指定的最大值 –

相關問題