0

NSAttributed文字列を使用してに表示しようとしていますがUILabel、改行モードとしてワードラップを使用しています。しかし、アプリを実行すると、例外 " NSAttributedString invalid for autoresizing, it must have a single spanning paragraph style (or none) with a non-wrapping lineBreakMode."がスローされます

誰かがこれを解決する方法を教えてもらえますか?

4

3 に答える 3

3

この質問を見た他の人のために。私を助けたのは、UILabelのテキストのサイズ変更を無効にすることでした。私のコードでは、これがありました:

[myLabel setAdjustsLetterSpacingToFitWidth:YES];
[myLabel setAdjustsFontSizeToFitWidth:YES];
[myLabel setMinimumScaleFactor:15.0/myLabel.font.pointSize];

それを取り除き、働き始めました。

于 2013-06-18T08:57:09.090 に答える
0

あなたはNSMutableAttributedString間違った方法で使用していると思いますが、以下のように使用する必要があります。

NSMutableDictionary *a = [[NSMutableDictionary alloc] init];
[a setObject:[NSNumber numberWithInt:1] forKey:NSStrikethroughStyleAttributeName]; 
NSMutableAttributedString *b = [[NSMutableAttributedString alloc] initWithString:@"abcd" attributes:a]; 
self.label.attributedText = b; 

上記のコードを試した後、画像に示したような UILabel 出力が得られるはずですここに画像の説明を入力

ただし、属性を個別に設定する場合は、次のようにする必要があります

[b addAttribute:ATTRIBUTENAME value:VALUE range:RANGE]; 

たとえば、背景色の属性を設定する

[str addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(2,4)];
于 2013-02-27T15:39:36.590 に答える