我有一个滑块,我想将其值限制在1到5的范围内。我在Interface Builder和代码中设置了最小值和最大值,但目前面临两个主要问题。
1)值不会改变(继续说值1)。
2)除此之外,当VoiceOver辅助功能模式打开时,我也无法调整滑块的值。该值保持为1,即使在表面上,它可能是值3/4/5。
以下是我在Swift中实现滑块的一些代码。我不知道这里有什么问题。任何帮助表示赞赏!
@IBOutlet weak var busSlider: UISlider!
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
busSlider.minimumValue = 1
busSlider.maximumValue = 5
}
override func viewDidAppear(animated: Bool) {
busSlider.accessibilityValue = NSNumberFormatter.localizedStringFromNumber(busSlider.value, numberStyle: NSNumberFormatterStyle.DecimalStyle)
busSlider.accessibilityLabel = NSLocalizedString("\(Int(busSlider.value))", comment: "")
}
override func accessibilityIncrement() {
busSlider.value++
busSlider.sendActionsForControlEvents(UIControlEvents.ValueChanged)
busSlider.accessibilityValue = NSNumberFormatter.localizedStringFromNumber(busSlider.value, numberStyle: NSNumberFormatterStyle.DecimalStyle)
busSlider.accessibilityLabel = NSLocalizedString("\(Int(busSlider.value))", comment: "")
}
override func accessibilityDecrement() {
busSlider.value--
busSlider.sendActionsForControlEvents(UIControlEvents.ValueChanged)
busSlider.accessibilityValue = NSNumberFormatter.localizedStringFromNumber(busSlider.value, numberStyle: NSNumberFormatterStyle.DecimalStyle)
busSlider.accessibilityLabel = NSLocalizedString("\(Int(busSlider.value))", comment: "")
}
*旁注:我实际上在同一个屏幕上有2个滑块,但属于不同的部分。第一个滑块以百分比(说话速率)读取值,此滑块需要读取整数值(停止次数)。