如何在#selector 中添加默认参数值
How to add a default parameter value in the #selector
我有一个功能:
func handleChange(isShown:Bool){
if isShown {
// do something A
}else{
// do something B
}
}
如果我想让 UISlider 添加上面的动作,isShown 默认为 false,然后我将在另一个函数中用 true 调用方法 handleChange(isShown:Bool)
。
错误代码如下:
slider.addTarget(self, action: #selector(handleValue(isShown:false)), for: .valueChanged)
我知道正确的代码应该是:
slider.addTarget(self, action: #selector(handleValue(isShown:)), for: .valueChanged)
我只想知道如何在 swift 中将 'isShown' 设置为 false?感谢您的回复。
一种解决方案是使用与 selector
函数分开的辅助函数。 selector 函数可以调用helper 函数,helper 函数可以有任意多个参数。
添加目标:
slider.addTarget(self, action: #selector(handleChange(_ sender: UISlider)), for: .valueChanged)
目标函数:
func handleChange(sender: UISlider) {
// logic based on the action or slider
doSomething(isShown: true)
}
辅助函数:
func doSomething(isShown: Bool) {
// make your changes using the parameters here
}
我有一个功能:
func handleChange(isShown:Bool){
if isShown {
// do something A
}else{
// do something B
}
}
如果我想让 UISlider 添加上面的动作,isShown 默认为 false,然后我将在另一个函数中用 true 调用方法 handleChange(isShown:Bool)
。
错误代码如下:
slider.addTarget(self, action: #selector(handleValue(isShown:false)), for: .valueChanged)
我知道正确的代码应该是:
slider.addTarget(self, action: #selector(handleValue(isShown:)), for: .valueChanged)
我只想知道如何在 swift 中将 'isShown' 设置为 false?感谢您的回复。
一种解决方案是使用与 selector
函数分开的辅助函数。 selector 函数可以调用helper 函数,helper 函数可以有任意多个参数。
添加目标:
slider.addTarget(self, action: #selector(handleChange(_ sender: UISlider)), for: .valueChanged)
目标函数:
func handleChange(sender: UISlider) {
// logic based on the action or slider
doSomething(isShown: true)
}
辅助函数:
func doSomething(isShown: Bool) {
// make your changes using the parameters here
}