我制作了一个滑块,标签为 PROGRAMMATICALLY 。我希望标签显示滑块的值,但标签只显示我最初分配的值。
代码:
<node2>
当我<main>
<h1>
<node1>duplicate</node1>
<node2> Data </node2>
<node1>New data</node1>
<node1>New data 2</node1>
</h1>
</main>
时,它显示var num: CGFloat = 9
override func viewDidLoad() {
let label = UILabel(frame: CGRectMake(0, 0, 60, 40))
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)"
}
正在改变,因为我更改了滑块值。但是,为什么我的视图控制器上的标签没有改变?
答案 0 :(得分:1)
您必须为滑块创建IBAction
,如下面的代码所示:
@IBAction func sliderValueChanged(sender: UISlider) {
num = sender.value
label.text = "\(num)"
}
有关更多信息,请参阅THIS教程。
<强>更新强>
以下是您完整的工作代码:
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)"
}
}
答案 1 :(得分:0)
确保你对滑块绑定动作.... 这里num是CGFloat值,sender.value是Float ......
$('.home-img-block').find('img').each(function() {
var imgClass = (this.width / this.height > 1) ? 'wide' : 'tall';
console.log(imgClass);
$(this).addClass(imgClass);
});