swif 在字符串中查找特定字符索引以及改变字符串的指定位置的颜色 字体大小

1 第一种方式

            var text = "谁包含这个字母";
            
            let range:Range = 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 = 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;
        
    }

你可能感兴趣的:(Swift,拾遗)