2

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

2 回答 2

6

首先,您需要从 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 的实际先前实现。

于 2016-06-17T10:08:42.023 回答
1

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

于 2016-06-17T08:37:08.303 回答