[英]How to customize UISlider Value in Swift
I create UISlider
Programmatically. 我
UISlider
编程方式创建UISlider
。 I try to customise UISlider
value as 4.1, 4.2, 4.3, 4.4, 4.5, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 6.0, ... Anybody give me the solution 我尝试将
UISlider
值定制为UISlider
,......任何人都给我解决方案
sliderDemo = UISlider(frame:CGRectMake(0, 0, 200,20))
var numberOfSteps : NSInteger = numbers.count - 1
sliderDemo.minimumValue = 6.5
sliderDemo.maximumValue = 4.1
sliderDemo.continuous = true
sliderDemo.value = 4.0
sliderDemo.addTarget(self, action: "sliderValueDidChange:", forControlEvents: .ValueChanged)
self.view.addSubview(sliderDemo)
func sliderValueDidChange(sender:UISlider!)
{
println("number:\(sender.value)")
}
I just create an example of a custom slider for you, in this case I am creating and adding it myself to the form but you can easily adapt to use the one from storyboard, all you need to do is to add your values to the numbers array, the result will be in the variable number in the valueChanged function, you can use observer, notifications or protocol to retrieve the value as it change, or simply call a function from there. 我只是为您创建一个自定义滑块的示例,在这种情况下,我自己创建并将其添加到表单中,但您可以轻松地使用故事板中的一个,您只需要将值添加到数字中数组,结果将在valueChanged函数中的变量号中,您可以使用观察者,通知或协议来检索更改时的值,或者只是从那里调用一个函数。
class ViewController: UIViewController {
var slider:UISlider?
// These number values represent each slider position
var numbers = [1, 2, 3, 4, 5, 6, 7] //Add your values here
var oldIndex = 0
override func viewDidLoad() {
super.viewDidLoad()
slider = UISlider(frame: self.view.bounds)
self.view.addSubview(slider!)
// slider values go from 0 to the number of values in your numbers array
var numberOfSteps = Float(numbers.count - 1)
slider!.maximumValue = numberOfSteps;
slider!.minimumValue = 0;
// As the slider moves it will continously call the -valueChanged:
slider!.continuous = true; // false makes it call only once you let go
slider!.addTarget(self, action: "valueChanged:", forControlEvents: .ValueChanged)
}
func valueChanged(sender: UISlider) {
// round the slider position to the nearest index of the numbers array
var index = (Int)(slider!.value + 0.5);
slider?.setValue(Float(index), animated: false)
var number = numbers[index]; // <-- This numeric value you want
if oldIndex != index{
println("sliderIndex:\(index)")
println("number: \(number)")
oldIndex = index
}
}
}
I hope that helps you! 我希望能帮到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.