在UITextView
文字中
在突出显示文本之前,其显示的文字大小为16.(在第一张图片中)
使用NSAttributedString
突出显示后。突出显示的文本仅显示相同大小(16)的剩余字符串显示小于原始大小(第二个。
仅在iPod
和iPhone
欺骗中出现此问题。 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;
答案 0 :(得分:1)
您似乎跳过了UITextView
的原始属性。
尝试替换此行:
NSMutableAttributedString *attrString =
[[NSMutableAttributedString alloc] initWithString:txtview4disp.text];
以下:
NSMutableAttributedString *attrString =
[[NSMutableAttributedString alloc] initWithAttributedString:txtview4disp.attributedText];