作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用类似以下内容在属性字符串中多次出现粗体
[attrStr setFont:[UIFont ...] range:[attrStr.string rangeOfString:@"hello world"]];
如您所知,“rangeOfString”总是返回匹配项的第一个匹配项……我对 iOS 还是很陌生,只是想知道将所有匹配项设置为粗体的最佳方法是什么……中是否提供了任何函数NSString 什么的?
提前致谢!
最佳答案
您应该首先尝试获取字符串中的所有范围,然后为每个范围设置属性。 stackoverflow 上有一些很棒的代码示例:https://stackoverflow.com/a/4653266/381870
编辑:
举个例子
- (NSArray *)rangesOfString:(NSString *)searchString inString:(NSString *)str {
NSMutableArray *results = [NSMutableArray array];
NSRange searchRange = NSMakeRange(0, [str length]);
NSRange range;
while ((range = [str rangeOfString:searchString options:0 range:searchRange]).location != NSNotFound) {
[results addObject:[NSValue valueWithRange:range]];
searchRange = NSMakeRange(NSMaxRange(range), [str length] - NSMaxRange(range));
}
return results;
}
用法:
NSArray *results = [self rangesOfString:@"foo" inString:@"foo bar foo"];
NSLog(@"%@", results);
给你
(
"NSRange: {0, 3}",
"NSRange: {8, 3}"
)
关于iphone - 关于 AttributeString - 将多次出现设为粗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9667276/
属性字符串的默认字体是什么?我想使用 将字符串的一部分设为粗体 [attrStr setFont:[UIFont ...] range:[attrStr.string rangeOfString:@"
我正在尝试使用类似以下内容在属性字符串中多次出现粗体 [attrStr setFont:[UIFont ...] range:[attrStr.string rangeOfString:@"hello
如何从字符串末尾向后搜索 attributedString 中的空格“”,然后获取该空格的范围? 我从 rtf 文件中获取属性字符串,并从中将其划分为多个属性字符串,以便我可以将它们显示在屏幕上作为页
我是一名优秀的程序员,十分优秀!