Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 当我以编程方式创建滑块时,为什么滑块不更新标签?_Swift_Uilabel_Uislider - Fatal编程技术网

Swift 当我以编程方式创建滑块时,为什么滑块不更新标签?

Swift 当我以编程方式创建滑块时,为什么滑块不更新标签?,swift,uilabel,uislider,Swift,Uilabel,Uislider,我以编程方式制作了一个滑块和标签。我希望标签显示滑块的值,但标签仅显示我最初指定的值 代码: 当我打印(label.text!)时,它显示label.text随着滑块值的改变而改变。但是,为什么我的视图控制器上的标签没有更改?您必须使用滑块为其创建iAction,如下代码所示: @IBAction func sliderValueChanged(sender: UISlider) { num = sender.value label.text = "\(num)" } 有关更

我以编程方式制作了一个滑块和标签。我希望标签显示滑块的值,但标签仅显示我最初指定的值

代码:


当我打印(label.text!)时,它显示
label.text
随着滑块值的改变而改变。但是,为什么我的视图控制器上的标签没有更改?

您必须使用滑块为其创建
iAction
,如下代码所示:

@IBAction func sliderValueChanged(sender: UISlider) {

    num = sender.value
    label.text = "\(num)"
}
有关更多信息,请参阅教程

更新:

以下是您的完整工作代码:

import UIKit

class ViewController: UIViewController {

    var num: CGFloat = 9
    let label = UILabel(frame: CGRectMake(0, 0, 60, 40))

    override func viewDidLoad() {
        super.viewDidLoad()

        label.text = "\(num)"
        self.view.addSubview(label)

        let slider = UISlider(frame:CGRectMake(0, 0, 60, 30))
        slider.value = Float(num)
        slider.addTarget(self, action: "changedSliderValue:", forControlEvents: .ValueChanged)
        self.view.addSubview(slider)
    }

    func changedSliderValue(sender: UISlider!){
        num = CGFloat(sender.value)
        label.text = "\(num)"
    }
}

确保已将绑定操作绑定到滑块。。。。 这里num是CGFloat值,sender.value是Float

var num: CGFloat = 9
label.text = "\(num)"

@IBAction func sliderValueChanged(sender: UISlider) {
    num = CGFloat(sender.value)
    label.text = "\(num)"
 }

很抱歉,如果我没有说清楚,但是我创建了slider和label Programmatically,可以通过编程方式将target设置为slider@Amanda like
slider.addTarget(self,action:“sliderValueChanged:”,forControlEvents:.ValueChanged)
…更多信息…请检查以帮助您:)
var num: CGFloat = 9
label.text = "\(num)"

@IBAction func sliderValueChanged(sender: UISlider) {
    num = CGFloat(sender.value)
    label.text = "\(num)"
 }