iOS:Swift:UISlidereditingDidEnd 未被调用

Pau*_*uiz 3 uislider ios swift

在此处输入图片说明

我已经设置了一个以滑块结尾的编辑功能,但它看起来不像是被调用的。我在其中添加了一个打印语句和一个断点。当我的用户松开滑块时,是否还需要执行其他操作来触发功能?

    @IBAction func sliderEditingDidEnd(sender: UISlider) {
    print("did end");
}
Run Code Online (Sandbox Code Playgroud)

cwe*_*105 5

使用事件“值已更改”。如果您只想更新最终值,请更改 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.
Run Code Online (Sandbox Code Playgroud)

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

无论是在故事板中:

或者在代码中:

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.")
}
Run Code Online (Sandbox Code Playgroud)

  • 然后继续为“Touch Up Inside”事件创建一个IBAction。每次用户释放滑块时它都会运行。 (2认同)