0

UITextView文中,

在突出显示文本之前,它显示的文本大小为 16。(在第一张图片中)

在使用NSAttributedString突出显示之后。突出显示的文本仅显示相同大小(16)的剩余字符串显示小于原始大小(第二个 .

这个问题只能在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 回答