UISlider 调整以匹配 UITextField 值

Posted

技术标签:

【中文标题】UISlider 调整以匹配 UITextField 值【英文标题】:UISlider to adjust to match UITextField Value 【发布时间】:2017-06-26 01:20:08 【问题描述】:

我在表单上有一个文本字段,其中值根据滑块而变化。我正在尝试更新功能,以便当用户在文本字段中输入值时,滑块将移动到正确的位置。我的 UISlider 将是一个介于 0 和 3 之间的值。

我一直在尝试使用这篇文章来帮助我,但是我无法让它发挥作用:How to set value of UISlider from a UITextField

干杯,

我希望用户能够使用滑块或键盘输入价格折扣 - 但如果他们输入一个值,我希望滑块移动到正确的位置。使用给定应用程序崩溃的代码。我认为这是因为代码冲突。我一直将侧边器连接为插座。这是正确的吗?

【问题讨论】:

它将我发送到 AppDelegate 类。我检查了幻影插座,没有发现任何问题。 【参考方案1】:

您是否因为 yoru 链接是 Objective C 版本而失败?所以这是快速的等价物。首先,像这样在您的文本字段上添加一个侦听器

textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)

然后在您的文本字段文本更改功能中,为您的滑块设置值

func textFieldDidChange(textField: UITextField) 
    if let stringValue = textField.text
        if let intValue = Int(stringValue)
            slider.setValue(intValue, animated: true)
        
    


【讨论】:

谢谢,这是我第 1 部分的编辑代码 orgDiscount.addTarget(self, action: Selector(("textFieldDidChange:")), for: UIControlEvents.editingChanged)。这是保存在视图下确实加载。函数更改为: func textFieldDidChange(textField: UITextField) if let stringValue = orgDiscount.text if let intValue = Int(stringValue) slider.setValue(Float(Double(intValue)), animated: true) .保存的外部视图确实加载了。我创建了一个滑块插座。称为滑块。它兑现我的应用程序 @KevinProctor 好的。您在哪一行收到什么错误消息? 它让我回到 AppDelegate 并给出错误 - 线程 1:Singal SIGABRT。它停在类的第一行 @KevinProctor 这太宽泛了,大部分错误都会显示该行。查看您的控制台以查看实际错误是什么,因为我的代码不应该有任何可能导致您的错误 你能确认我在视图控制器的右边部分有两段代码吗?

以上是关于UISlider 调整以匹配 UITextField 值的主要内容,如果未能解决你的问题,请参考以下文章

如何使 UISlider 匹配音频进度

匹配 UIToolBar 中的 MPVolumeView 和 UISlider 垂直位置

iOS UISlider 值不匹配

调整屏幕亮度,调整字体大小

调整表单宽度以匹配 SplitContainer 大小

Swift:调整 AVPlayerLayer 的大小以匹配其父容器的边界