2015-06-24 3 views
0

У меня есть пользовательский слайдер, который меняет значение на основе super.beginTrackingWithTouch и super.continueTrackingWithTouch. Это следует за квадратичным путем.добавить доступный пользовательский слайдер iOS

Глядя на то, чтобы пользовательский слайдер был доступен. Любые идеи о том, как это сделать?

Я думал о добавлении стандартного слайдера iOS, добавляя accessibilityLabel и передавая эти значения пользовательскому слайдеру. Однако проблема с тем, что стандартный функциональный слайдер работает, но невидимым для пользователя.

ответ

1

Как правило, рекомендуется распространять стандартный элемент управления для выполнения специального поведения, которое вам нужно. Как автор полностью настраиваемого контроля, вы несете ответственность за большую доступность.

Эксперимент с использованием UISlider с использованием VoiceOver на вашем устройстве. Посмотрите, как он себя ведет. Вы хотите сохранить как можно больше этого опыта, когда вы реализуете свой собственный контроль. Вы можете использовать Accessibility Inspector in Simulator, чтобы изучить конфигурации доступности системных элементов управления.

следующие шаги почти наверняка актуальны:

  1. Override или установить - (BOOL)isAccessibilityElement вернуть YES.
  2. Заменить или установить - (CGRect)accessibilityFrame, чтобы вернуть соответствующий прямоугольник в координатах экрана.
  3. Переопределить или установить - (UIAccessibilityTraits)accessibilityTraits, чтобы включить UIAccessibilityTraitAdjustable.
  4. Переопределить - (NSString *)accessibilityValue, чтобы описать текущее значение вашего элемента управления.
  5. Внесите - (void)accessibilityIncrement и - (void)accessibilityDecrement, чтобы выполнить изменения стоимости, запрошенные вспомогательными клиентами, такими как VoiceOver.

Помимо вышеперечисленных шагов, я не могу сказать, что требуется для вашего конкретного элемента управления, без дополнительной информации. Если вы застряли, просмотрите Accessibility Programming Guide, UIAccessibility Protocol documentation и UIAction protocol documentation и вернитесь в StackOverflow с любыми оставшимися вопросами.

Удачи вам и благодарю вас за то, что вы уделяете этому внимание, которого оно заслуживает.

-1

Если доступны вы имеете в виду голос поверх вы можете сделать следующее притворяясь mySlider это имя для вашего Slider Control:

[mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged]; 

- (IBAction)sliderValueChanged:(UISlider *)sender { 
    NSString *valueToAnnounce=[NSString stringWithFormat:@"slider value = %f", sender.value]; 
    UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, valueToAnnounce); 
} 

Этот блог помог мне несколько раз с Voice Over вопросы: http://www.podfeet.com/blog/tutorials-5/build-accessible-ios-apps/

+0

Мне нужно вернуться, чтобы дать лучший ответ, но просто публиковать объявление, когда изменение ценности - неправильный подход. Он не будет вести себя как другие слайдеры, не улучшает доступность для пользователей других вспомогательных технологий, таких как Switch Control, и может быть непонятен для пользователей VoiceOver. – Justin

Смежные вопросы