iOS:Swift:UISlider editingDidEnd没有被调用

时间:2015-09-08 17:24:04

标签: ios swift uislider

enter image description here

我已经设置了一个用滑块编辑完成结束的功能,但它看起来不像是被调用了。我已经在其中抛出了一个print语句和一个断点。当我的用户放开滑块时,是否需要执行其他操作来触发功能?

    @IBAction func sliderEditingDidEnd(sender: UISlider) {
    print("did end");
}

3 个答案:

答案 0 :(得分:4)

使用事件“Value Changed”。如果您只想更新最终值,请更改UISlider.continuous

var slider = UISlider()
slider.continuous = false
//add slider to view

@IBAction func valueChanged(sender: UISlider) {
    println("Value changed.")
}
//prints "Value changed." once upon releasing slider.

如果滑块需要连续,则可以为UIControlEvent.TouchUpInside实现一个事件。

Either in storyboard:

或代码:

override func viewDidLoad() {
    super.viewDidLoad()

    mySlider.addTarget(self, action: "userReleasedSlider:", forControlEvents: UIControlEvents.TouchUpInside)


    // Do any additional setup after loading the view, typically from a nib.
}

func userReleasedSlider(slider: UISlider) {
    print("User released slider.")
}

答案 1 :(得分:0)

我认为您要做的是在更改值时获取通知。然后你必须将事件设置为' Value Changed'没有'编辑结束'。

答案 2 :(得分:0)

如果同时设置Touch Up Inside和Touch Up Outside指向@IBAction,则可以在用户完成滑动时触发该功能,并使滑块保持连续。

enter image description here