我正在嘗試使UIPickerView的我的Voice Over可訪問,我注意到UIPickerViewAccessibilityDelegate協議是相當不完整的。它只允許您爲pickerView組件指定標籤和提示,而不是組件中的行。 (它也有一個bug,它的pickerView:accessibilityLabelForComponent:方法在它的pickerView參數中沒有傳遞一個UIPickerView *,它是一個UIAccessibilityPickerComponent)!如何爲UIPickerView行設置Voice Over輔助功能標籤?
所以我想知道現在有沒有什麼辦法可以設置我的選取器的行的自定義輔助功能標籤,還是隻能讀出顯示在屏幕上的實際選取器行值?
我試圖做一個選擇器視圖,顯示它的時間,小時,分鐘,秒。我無法讓datePicker來做到這一點。但是,如果每行都可以用「3小時」而不是3來表示,那麼它會很好。如果必須將可見標籤設置爲我想要的聲音來朗讀,那麼我不確定標籤將適合顯示這個,即。
15小時35分鐘20秒
是相當多的,以適應在英國的屏幕上,不知道有多大,它會局部時因此理想的成長能夠爲每一行設置標籤.. 。
乾杯
感謝您的信息。我想我現在被卡住了,因爲我無法指定組件的輔助功能標籤,因爲我描述了pickerView:accessibilityLabelForComponent:方法沒有在它的pickerView參數中傳遞一個UIPickerView *,而是一個UIAccessibilityPickerComponent,而不是私有API並有一個選擇器屬性是正確的選擇器。 問題是我在這個ViewController中有多個選擇器,所以我需要能夠確定我正在設置組件輔助功能標籤的選擇器。我記錄了一個有關它的雷達錯誤。 – jimbobuk
儘管多謝了,但你還是多說了一些重複。如果我可以修復組件標籤,那麼也許我可以刪除它。現在我已經將完整的可見標籤設置爲我想要的。 – jimbobuk
我想再說一遍,你可以從'pickerView:viewForRow:forComponent:reusingView:'''text''將會返回'UIView'(例如'UILabel')。 「20」,其「accessibilityLabel」將是「20分鐘」。不需要將'UILabel'的文本也設置爲「20分鐘」(或者從'pickerView:titleForRow:forComponent:'返回「20分鐘」)。對不起,如果我誤解你的評論,情況並非如此。 –