1 第一种方式
var text = "谁包含这个字母";
let range:Range<String.Index> = text.range(of: "含")!;
let end_idx:Int = text.distance(from: text.startIndex, to: range.lowerBound);
// 打印2
print(end_idx);
类方法 抽取
// 查找对应索引
static func findIdx(str:String,targetStr:String) -> Int{
let range:Range<String.Index> = str.range(of: targetStr)!;
let end_idx:Int = str.distance(from: str.startIndex, to: range.lowerBound);
return end_idx;
}
2 改变字符串指定位置大小
// 改变字符串的指定位置的颜色 字体大小
static func changeStringColorFont(str:String,color:UIColor,fontSize:CGFloat,startIdx:Int,endIdx:Int) -> NSMutableAttributedString{
let noteStr = NSMutableAttributedString.init(string: str);
var secondIdx = endIdx;
secondIdx = endIdx > str.count ? str.count : endIdx;
// 改变的区间
let range = NSRange.init(location: startIdx, length: secondIdx - startIdx);
// 改变颜色 和 字体大小
noteStr.addAttributes([NSAttributedString.Key.foregroundColor : color], range: range)
noteStr.addAttributes([NSAttributedString.Key.font : UIFont.systemFont(ofSize: fontSize)], range: range);
return noteStr;
}