2014-12-04 3 views
0

У меня есть метка в моем приложении, которую пользователь должен иметь возможность использовать с включенным VoiceOver, чтобы он говорил текст этой метки. Тем не менее, я хочу, чтобы он всегда говорил что-то, прежде чем читать текст ярлыка. Я попытался установить accessibilityLabel через self.displayLabel.accessibilityLabel = "my text here" + self.displayLabel.text!, но это приводит к тому, что он всегда устанавливается в исходное текстовое значение метки, которое всегда меняется в этом приложении.Добавить текст, чтобы поговорить перед объявлением текста ярлыка

Как добавить текст для объявления непосредственно перед содержимым этикетки, гарантируя, что он всегда будет говорить о текущем содержимом текста этикетки?

+0

Почему вы не можете добавить текст на эту метку перед назначением? – iOSdev

+1

Обновляйте его каждый раз, когда текст ярлыка изменяется (и рассмотрите возможность публикации уведомления об изменении объявления или макета). – Wain

ответ

0

Переключить accessibilityLabel в подкласс UILabel, чтобы вернуть все, что захотите.

override var accessibilityLabel: String! { 
    get { 
     return "my text here" + "," + self.text! 
    } 
    set { } 
} 

Возможно, вы захотите опубликовать объявление каждый раз, когда текст изменяется, чтобы информировать пользователей VO, значение изменилось.

+0

. Разве это не «super.accessibilityLabel = newValue» в сеттере? Этот код, кажется, идет в рекурсивном бесконечном цикле. – Laurent

+0

@JohnDifool Вы правы. Вы можете оставить сеттер пустым. благодаря – Joey

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