【发布时间】:2017-10-08 17:40:59
【问题描述】:
我目前在我的viewcontroller.swift 上有三个单独的滑块,我希望它们都执行相同的功能,即将滑块值四舍五入到最近的位置。我已经完成了第一个,比如:
@IBAction func changePos(_ sender: UISlider) {
slider.value = roundf(slider.value)
}
我尝试了许多不同的方法来使用slider2, changePos2, etc 将相同的功能添加到不同的 UISlider,但我的应用程序要么崩溃,要么不执行该功能。
如何让不同的 UISlider 在同一个视图控制器中执行相同的功能?
【问题讨论】:
-
崩溃说什么?
-
将您的
func更改为使用sender而不是slider,然后将所有滑块连接到这个@IBAction。@IBAction func changePos(_ sender: UISlider) { sender.value = roundf(sender.value)} -
好的,我刚刚将所有滑块变量设置为
sender,一切正常。所以对于我的另外两个,我不必制作新的 IBOutlet 或 IBAction?我可以简单地在现有的 IBAction 中放置一个新的函数吗? -
问题解决了,我参考了你关于更改为发件人的建议,还实现了
changePos1, changePos2, changePos3,它们都有效。 -
@jacobbullon 这根本不是正确的解决方案,也不是 vacawama 建议的。您只需要一个
changePos方法。在其中,只需将slider的两个引用更改为sender。然后将所有滑块连接到那个 IBAction。
标签: ios swift xcode uislider ibaction