结束跟踪时 UISlider 的控制事件

Ash*_*rma 2 uislider ios uicontrolevents swift

我有一个视频播放器滑块,我想在用户开始滑动视频播放器滑块并结束滑动视频播放器滑块时跟踪事件。此外,我正在跟踪哪些滑块值发生了变化。当滑块启动并更改其值时,我能够成功跟踪它。我的问题是滑动结束时我无法跟踪它。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")
        }
Run Code Online (Sandbox Code Playgroud)

JAc*_*Ack 6

首先,您需要从 UISlider(Storyboard) 到您的视图控制器执行 CNTRL+DRG。在这里,使用 ' Value Changed' 事件。

在这个动作中,你尝试任何代码只是打印一些东西。

其次,将UISlider的outlet作为slider。比使用以下代码::

 self.slider.addTarget(self, action: #selector(PreviewViewController1.sliderDidEndSliding(_:)), forControlEvents: ([.TouchUpInside,.TouchUpOutside]))
Run Code Online (Sandbox Code Playgroud)

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

func sliderDidEndSliding(notification: NSNotification)
    {
print("Hello")
}
Run Code Online (Sandbox Code Playgroud)

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