Подтвердить что ты не робот

Как поддерживать динамический тип в ярлыках в iOS 7

Как поддерживать динамический тип в UILabel и UITextView в iOS 7? Я адаптирую один из наших проектов для iOS 7 и хотел бы поддержать эту функцию доступности. Я не могу найти конкретный способ обучения на нем на сайте разработчика Apple iOS. Любые ссылки или пример кода будут оценены.

4b9b3361

Ответ 1

Если вы используете новые методы UIFont, то вы в значительной степени там - вам просто нужно добавить наблюдателя для прослушивания изменений.

Вместо того, чтобы устанавливать определенный размер шрифта, вы должны использовать preferredFontForTextStyle: и связанные с ним методы при стилизации ваших меток (если вы используете Interface Builder, вы можете выбрать стиль непосредственно в инспекторе). Например:

self.label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];

После этого вы должны прослушать UIContentSizeCategoryDidChangeNotification. Когда вы получите это уведомление, вы должны разметить свои метки для поддержки недавно выбранного размера (если вы используете автозапуск, это обычно так же просто, как отправка invalidateIntrinsicContentSize в ваши представления).

Если вы ищете официальную документацию, посмотрите на Руководство по программированию текста.

Ответ 2

В Swift 3 и iOS 10 вы можете использовать

headline.font = UIFont.preferredFont(forTextStyle: UIFontTextStyleHeadline)
headline.adjustsFontForContentSizeCategory = true

См. этот отличный пост для получения дополнительной информации, особенно, как поддерживать pre iOS 10.