iOS 7 BUG - NSAttributedString n'apparaît pas

La semaine dernière, j'ai posé une question à propos d'un Simulateur de bug avec NSAttributedString pas l'affichage: iOS 7 Simulateur de Bug - NSAttributedString n'apparaît pas

Malheureusement, il apparaît maintenant, ce n'est pas un simulateur de bug, mais une version d'iOS 7 bug. J'ai maintenant reproduire ce problème sur un iPhone 5 appareil.

Le bug semble être la combinaison de l'utilisation NSUnderlineStyleAttributeName & NSParagraphStyleAttributeName comme attributs d'un NSAttributedString.

Je ne l'ai testé sur les deux iOS 7 appareils de mesure, et la question a seulement apparu sur l'un d'eux. Même après qu'ils ont tous les deux été mis à niveau vers la même version exacte:

  • Le 1er iPhone 5 avec iOS 7.0 (11A465): le Texte n'apparaît PAS

  • Le 1er iPhone 5 après la mise à jour 7.0.2 (11A501): le Texte n'apparaît PAS

  • 2e iPhone 5 sous iOS 7.0 (11A4449d): le Texte s'affiche correctement

  • 2e iPhone 5 après la mise à jour 7.0.2 (11A501): le Texte n'apparaît PAS

Il semble donc qu'Apple a présenté ce bug après iOS 7.0 (11A4449d). J'ai déposé un bug avec eux et vous mettre à jour sur toutes les réponse que je reçois.

Étapes pour reproduire le bug

Si vous êtes sous iOS 7.0.2, alors vous devriez être en mesure de reproduire ce bug.

Télécharger et exécuter ce projet sur votre appareil https://github.com/rohinnz/iOS-7-BUG---NSAttributedString-does-not-appear

ou

1) Dans Xcode 5 créer une nouvelle "Vue Unique Application". Appelez cela comme.

2) Dans Le ViewController.m, remplacer la méthode viewDidLoad avec:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSMutableParagraphStyle* paragraph = [[NSMutableParagraphStyle alloc] init];
    paragraph.alignment = NSTextAlignmentCenter;

    NSAttributedString* attrStr = [[NSAttributedString alloc] initWithString:@"Lorem ipsum dolor sit" attributes:
                                   @{NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),
                                     NSParagraphStyleAttributeName:paragraph}];

    UILabel* myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 0, 0)];
    myLabel.backgroundColor = [UIColor greenColor];
    myLabel.attributedText = attrStr;
    [myLabel sizeToFit];

    [self.view addSubview:myLabel];
}

3) Compiler et l'exécuter sur votre appareil. Selon votre version d'iOS 7, le texte de l'affichage, ou ne sera pas. Le UILabel la couleur d'arrière-plan s'affiche dans les deux cas.

Captures d'écran

iPhone 5 avec iOS 7.0 (11A465)

iOS 7 BUG - NSAttributedString n'apparaît pas

iPhone 5 avec iOS 7.0 (11A4449d)

iOS 7 BUG - NSAttributedString n'apparaît pas

Ma Question

Quelqu'un est-il capable de reproduire ce problème sur un appareil?

  • Vous pouvez créer un minimum de projet qui illustre le bug, l'héberger sur github ou quelque chose, et d'ouvrir un rapport de bogue sur developer.apple.com/bug-reporting , en pointant sur le github du projet dans le rapport de bogue.
  • Bonne idée, je vais le télécharger quelque chose à github bientôt. J'ai déjà déposé un bug avec Apple, mais je ne suis pas attendent à une réponse de sitôt, car ils n'ont pas encore obtenu de nouveau à moi sur un autre iOS 7 bug que j'ai élevé avec eux il ya un moment.
  • j'ai trouvé des résultats similaires en utilisant backgroundcolor sur attribuée texte et le redimensionnement de la uilabel lors de la rotation de l'appareil. si je n'utilise pas backgroundcolor everythign fonctionne très bien. avec backgroundcolor après une modification de la largeur du texte disparaît. sur la rotation en arrière à l'original, le texte s'affiche de nouveau.
  • UILabel est juste buggy. NSTextAttachments sont également à l'origine des lignes de texte à disparaître, mais inversement proportionnelle à l'étiquette de la hauteur. Voir cette question: stackoverflow.com/q/19253224/1580288
  • Je pense que mon deuxième solution, où vous laissez l'étiquette redimensionner sa propre hauteur, est totalement fiable solution pour ce problème.
  • Essayez de nouveau avec iOS 7.1. Ce bug peut être résolu.
  • Avez-vous signalé ce bug ? J'ai rencontrer le même problème.
  • Si le texte est très grand, alors vous devez utiliser UITextView avec le défilement est activé et modifiable/sélectionné désactivé (au lieu de UIScrollView & affichage du Contenu & UILabel).

InformationsquelleAutor RohinNZ | 2013-10-01