滑块值不适用于辅助功能 - iOS8

时间:2015-10-23 20:16:11

标签: ios8 slider accessibility voiceover uiaccessibility

我有一个滑块,我想将其值限制在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个滑块,但属于不同的部分。第一个滑块以百分比(说话速率)读取值,此滑块需要读取整数值(停止次数)。

0 个答案:

没有答案