pickerview语音的可访问性

时间:2017-04-12 16:34:29

标签: accessibility uipickerview voiceover

我需要一些帮助,我正试图完成我的第一个应用程序,现在我正在实现可访问性,而应用程序可以与VoiceOver一起使用。

issu是我在一个视图控制器中有3个不同的选择器视图,但我无法为每个视图控制器修复标签。检查器标识符中的属性不适用于pickerView。如果我使用该方法:

func pickerView(_ pickerView:UIPickerView,accessibilityLabelForComponent component:Int) - >字符串?

是的,我修复了一个标签,但它们中的三个是相同的,并且每个pickerView都有自己的标签。每个pickerview都有一个组件,但我不知道如何设置其他组件来区分每个pickerView并有三个不同的标签,每个标签各一个。

任何帮助都是好的

非常感谢预期

我在这里包括下一个:

1st.-选择了一个选择器视图的截图,以及检查器中的标签是如何设置的,但它在运行时不起作用:

a screenshot of one the pickerview selected and how its label in the inspector is setup, but it doesn't work at running:

2.-用于任何其他控制,标签或文本字段的代码,但不适用于挑选者视图:

extension Rithm {
func applyAccessibility() {
    logo.isAccessibilityElement = false
    kmMille.subviews[0].accessibilityLabel = NSLocalizedString("Milles", comment: "")
    kmMille.subviews[1].accessibilityLabel = NSLocalizedString("Kilometers", comment: "")
    switch kmMille.selectedSegmentIndex {
    case 1:
        distanceTextField.accessibilityLabel = NSLocalizedString("Please, enter a distance in Milles", comment: "")
    case 0:
        distanceTextField.accessibilityLabel = NSLocalizedString("Please, enter a distance in Kilometers", comment: "")
    default:
        break

    }



    hourPickView.accessibilityLabel = NSLocalizedString("Time selector, enter the hours used for the distance selected", comment: "") // DON'T WORK


}

}

第3,与pickerview一起使用的方法,如果你添加一个标签,它会在视图控制器中为所有的pickerview返回,但是,我不知道如何修复这里为每个标签添加一个标签他们。

func pickerView(_ pickerView: UIPickerView, accessibilityLabelForComponent component: Int) -> String?{
    hourPickView.accessibilityIdentifier = "Hour"
    secPickView.accessibilityIdentifier = "Sec"
    minPickView.accessibilityIdentifier = "Min"
    switch component {
    case 0:
        print("Este es: \(component)")
        if hourPickView.accessibilityIdentifier == "Hour" {
            switch pickerView.accessibilityIdentifier {
            case "Hour"?:
                return "Box for hour"
            case "Min"?:
                return "Box for minute"
            case "Sec"?:
                return "Box for second"
            default:
                return "Doesn't work"
            }


            //return "try to check what happens"
        } else {
            return "doesn't work"
        }
    default:
        print("\(component)")
        return "either"
    }

 }

正如我告诉大家的,谢谢你的帮助!!!

0 个答案:

没有答案