Comment prendre en charge Dynamic Type dans UILabel
et UITextView
dans iOS 7? J'adapte l'un de nos projets pour iOS 7 et j'aimerais prendre en charge cette fonctionnalité d'accessibilité. Je ne trouve pas le tutoriel spécifique sur le site de développeur iOS d'Apple.
Si vous utilisez les nouvelles méthodes UIFont
, vous y êtes pratiquement - il vous suffit d'ajouter l'observateur pour écouter les changements.
Plutôt que de définir une taille de police spécifique, vous devez utiliser le preferredFontForTextStyle:
et les méthodes associées lors du stylisme de vos étiquettes (si vous utilisez Interface Builder, vous pouvez sélectionner un style directement dans l'inspecteur). Par exemple:
self.label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
Une fois que vous avez fait cela, vous devriez écouter le UIContentSizeCategoryDidChangeNotification
. Lorsque vous recevez cette notification, vous devez disposer vos étiquettes pour prendre en charge la nouvelle taille sélectionnée (si vous utilisez la mise en page automatique, cela est normalement aussi simple que d'envoyer invalidateIntrinsicContentSize
à vos vues).
Si vous recherchez une documentation officielle, jetez un œil au Guide de programmation de texte .
Dans Swift 3 et iOS 10, vous pouvez utiliser
headline.font = UIFont.preferredFont(forTextStyle: UIFontTextStyleHeadline)
headline.adjustsFontForContentSizeCategory = true
Voir cet excellent article pour plus d'informations, en particulier comment prendre en charge la version antérieure à iOS 10.