如何让我的UISlider
从1-100
以5
的增量变为?增量为5的UISlider
回答
添加一个目标是这样的:
slider.continuous = YES;
[slider addTarget:self
action:@selector(valueChanged:)
forControlEvents:UIControlEventValueChanged];
而且在功能的valueChanged将该值设置为最接近的值是整除5
[slider setValue:((int)((slider.value + 2.5)/5) * 5) animated:NO];
还有另一种方式为主动步进功能。工作在一般情况下
实施例:
范围的数据是0 - 2800和我想要的增量是在25倍单位的值。我会做以下几点:
- 设置滑块的范围为0 - (maxRange/unitsteps)。
- 当值更改方法运行时使用(int)slider.value * unitsteps。
将在IB设置为范围0 - 112 和我的代码是(INT)slider.value * 25
如果再有一个文本字段可以修改直接输入,你只需做相反的设置滑块值到[textfield.text intValue] /单位。
这是一个副作用,它可以帮助强制限制文本框的值... – 2011-10-07 15:16:19
这对我来说似乎是最完美的解决方案。 – Umair 2017-08-29 11:28:31
为寻找雨燕语法...
override func viewDidLoad() {
super.viewDidLoad()
mySlider.addTarget(self, action: "sliderValueDidChange:", forControlEvents: .ValueChanged)
}
func sliderValueDidChange(sender:UISlider!)
{
//Set value to the nearest 5...
print((Float)((Int)((sender.value + 2.5)/5) * 5))
sender.setValue((Float)((Int)((sender.value + 2.5)/5) * 5), animated: false)
}
另外,刚刚创建与助理编辑(我就是这样做最终)的动作功能...
@IBAction func mySliderValueChanged(sender: UISlider) {
//Set value to the nearest int
sender.setValue(Float(roundf(sender.value)), animated: false)
}
稍微在斯威夫特更优雅的解决方案可能是这样的
let step: Float = 5
@IBAction func sliderValueChanged(sender: UISlider) {
let roundedValue = round(sender.value/step) * step
sender.value = roundedValue
// Do something else with the value
}
这样你得到ste ps of 5.你可以在我的post中阅读更多关于设置的信息。
1. In storyboard mode, drag and drop a stepper and label. the label will show the stepper values.
- 左点击标签和步进拖动到视图控制器作为网点。
- 拖放步进再次使其成为一个FUNC-我打电话给我 “FUNC”
名称标签为 “stepperValue”
@IBAction FUNC inc(sender:AnyObject){
stepperValue.text =“(Int(步进器。值)* 5)”
点击步进,它将通过5
请编辑您的答案以获得更好的可读性。 – 2016-04-26 16:28:11
增量迅速3,滑盖增量+/- 7:
@IBOutlet weak var sldComponent: UISlider!
...
sldComponent.addTarget(self, action: #selector(_sldComponentChangedValue),for: .valueChanged)
...
func _sldComponentChangedValue(sender: UISlider!) {
self.sldComponent.setValue((round(sender.value/7) * 7), animated: false)
print("\(sender.value)")
}
- 1. UISlider增量
- 2. UIslider 10增加10
- 3. 使UIStepper的增量增加5
- 4. 增加UISlider的范围-1.0到1.0
- 5. 增量变量为
- 6. 设置为UISlider
- 7. UISlider变量最大值
- 8. 使用UISlider更改音量
- 9. UISlider的怪异行为
- 10. Probleme ID为增量
- 11. 递增5位数
- 12. 增量,增量前和增量后
- 13. Twig变量的增量值为一个
- 14. Java后增加和预增量行为
- 15. 如何创建一个5的倍数的随机增量?
- 16. 自定义UISlider在iOS 4.3和iOS表现不同的5
- 17. 自动增量为Oracle
- 18. 增量时,作为参数
- 19. 为没有增量vs
- 20. 将自动增量列修改为全局自动增量列
- 21. 为什么按照预增量实现后增量?
- 22. Android中的UISlider?
- 23. 使用uislider调整音量cocos2d
- 24. 同步音量摇杆与UISlider
- 25. UISlider下列音量,不工作
- 26. 使用UIslider Iphone进行音量控制?
- 27. Id的增量
- 28. jQuery的增量
- 29. 增量的JavaScript
- 30. JavaScript的增量
我感觉老实说很愚蠢。 ays简单的事情,让我。 – 2012-02-05 20:26:16
谢谢,请避免我多想它^^但我做了一些小改动:int increment = 10; [numberOfAppsInFutur setValue:((int)((numberOfAppsInFutur.value + increment/2。)/ increment)* increment)animated:NO]; – 2012-04-27 14:26:27
万一它有帮助,有一个完整的例子[这里](http://stackoverflow.com/a/8219848/168594)。 – zekel 2014-07-05 11:11:05