drawInRect: withAttributes vs drawInRect: withFont: lineBreakMode: alignment

Pracuję nad nową wersją mojej aplikacji i próbuję zastąpić nieaktualne wiadomości, ale nie jestem w stanie przekroczyć tego.

Nie mogę zrozumieć dlaczegodrawInRect:withAttributes nie działa. Kod wyświetla się prawidłowo, gdydrawInRect:withFont:lineBreakMode:alignment wiadomość jest wysyłana, ale nie działa, gdydrawInRect:withAttributes jest wysłany.

Używam tego samego rect i fontu i uważam, że ten sam styl tekstu. Stałe ustawiają właśnie rect tuż pod obrazem, ale używam tego samego rect dla obu wywołań, więc jestem pewien, że prostokąt jest poprawny.

(zauważ tobs.name użyty poniżej jest obiektem NSString)

        CGRect textRect = CGRectMake(fCol*kRVCiPadAlbumColumnWidth,
                                     kRVCiPadAlbumColumnWidth-kRVCiPadTextLabelYOffset,
                                     kRVCiPadAlbumColumnWidth,
                                     kRVCiPadTextLabelHeight);
        NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
        textStyle.lineBreakMode = NSLineBreakByWordWrapping;
        textStyle.alignment = NSTextAlignmentCenter;
        UIFont *textFont = [UIFont systemFontOfSize:16];

To nie działa (nic nie jest rysowane na ekranie) używając zmiennych z góry

        [bs.name drawInRect:textRect
             withAttributes:@{NSFontAttributeName:textFont,
                              NSParagraphStyleAttributeName:textStyle}];

To działa (ciąg jest rysowany poprawnie na ekranie) przy użyciu tych samych zmiennych z góry

        [bs.name drawInRect:textRect
                   withFont:textFont
              lineBreakMode:NSLineBreakByWordWrapping
                  alignment:NSTextAlignmentCenter];

Każda pomoc byłaby świetna. Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion