结束跟踪时控制UISlider的事件

时间:2016-06-17 07:01:29

标签: ios swift uislider uicontrolevents

我有一个视频播放器滑块,我想在用户开始滑动视频播放器滑块并结束滑动视频播放器滑块时跟踪事件。另外,我正在跟踪滑块值的变化。当滑块启动并且其值发生变化时,我能够成功跟踪它。我的问题是滑动结束时我无法跟踪它。我应该将哪个UIControlEvent用于sliderEndedTracking?

我使用以下代码:

// Slider actions for UIControlEvents
        playerSlider.addTarget(self, action: #selector(sliderBeganTracking(_:)),
            forControlEvents: UIControlEvents.TouchDown)
        playerSlider.addTarget(self, action: #selector(sliderEndedTracking(_:)),
            forControlEvents: UIControlEvents.TouchUpInside )
        playerSlider.addTarget(self, action: #selector(sliderEndedTracking(_:)),
            forControlEvents: UIControlEvents.TouchUpOutside)
        playerSlider.addTarget(self, action: #selector(sliderValueChanged(_:)),
            forControlEvents: UIControlEvents.ValueChanged)


// Slider Actions:
        func sliderBeganTracking(slider: UISlider!) {
            Log.Debug("sliderBeganTracking")
        }

        func sliderEndedTracking(slider: UISlider!) {
            Log.Debug("sliderEndedTracking")
        }

        func sliderValueChanged(slider: UISlider!) {
            Log.Debug("sliderValueChanged")
        }

2 个答案:

答案 0 :(得分:4)

首先,您需要从UISlider(Storyboard)到您的视图控制器进行CNTRL + DRG。在这里,使用“Value Changed”活动。

在此操作中,您可以尝试任何代码只需打印一些内容。

其次,将UISlider的出口设为滑块。而不是使用以下代码::

 self.slider.addTarget(self, action: #selector(PreviewViewController1.sliderDidEndSliding(_:)), forControlEvents: ([.TouchUpInside,.TouchUpOutside]))

尝试在sliderDidEndSliding()方法中打印一些东西。示例:

func sliderDidEndSliding(notification: NSNotification)
    {
print("Hello")
}
  
    

通过使用这两种方法,您将获得UISlider的实际先前实现。

  

答案 1 :(得分:1)

TouchUpInside活动对我有用。如果您从UISlider释放手指,则会触发该事件。 不是你想要的吗?