0

UITextView本文では、

テキストを強調表示する前に、テキストサイズを 16 として表示します。 (最初の画像)

を使用した後、NSAttributedStringハイライトします。強調表示されたテキストは、同じサイズ (16) の文字列のみを示し、残りの文字列は元のサイズ (2 番目の .

この問題はiPodiPhone欺くだけです。iPad正しい形式で表示されます。

ここに画像の説明を入力

UITextViewテキストを強調表示するコード

 NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:[UIFont fontWithName:@"Arial" size:currentTextSize] forKey:NSFontAttributeName];

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:txtview4disp.text];

 int startind=[[dict objectForKey:@"BeginIndexPos"]integerValue];
        int endind=[[dict objectForKey:@"EndIndexPos"]integerValue];
        NSRange rang;
        if (startind>=STARTINDEX&&startind<=ENDINDEX) {
            if (endind>ENDINDEX) {
                int endind2=endind-ENDINDEX;
                rang=NSMakeRange(startind-STARTINDEX, (endind-startind)-endind2);   
            }
            else
                rang=NSMakeRange(startind-STARTINDEX, endind-startind);


        [attrString addAttributes:attrsDictionary range:rang];

        [attrString addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:rang];

   txtview4disp.attributedText=attrString;

ここに画像の説明を入力

4

1 に答える 1

1

の元の属性をスキップしたようですUITextView。この行を置き換えてみてください:

NSMutableAttributedString *attrString =
[[NSMutableAttributedString alloc] initWithString:txtview4disp.text];

次の場合:

NSMutableAttributedString *attrString =
[[NSMutableAttributedString alloc] initWithAttributedString:txtview4disp.attributedText];
于 2013-03-28T08:01:26.063 に答える