ios - 更改动态字符串中的子字符串颜色

标签 ios string swift

我有一个 iOS Swift 2/Xcode 7 项目,用于搜索字符串并从指定列表中识别子字符串。输入字符串会改变,但子字符串保持不变。

类似这样的事情 输入字符串“盐、水、面粉”

比较子字符串“SALT, PEPPER”

由于“SALT”存在,它会突出显示,如下所示

水面粉

最好是不同的颜色 - 所以红色代表“盐”,绿色代表“胡椒”,其他任何颜色都是黑色。

这是搜索子字符串的基本代码 -

iList = "SALT, FLOUR, WATER...."  //actually pulled from CORE data, different for every search

for ingredient in ["SALT", "PEPPER", "SUGAR"] {
                        if iList.rangeOfString(ingredient) != nil {
                            print("Ingredient Found \(ingredient) found")
                        }
                    }

iList 显示在 TextView 中。

期望的结果看起来像这样

、面粉、水......

我发现的示例依赖于能够更改字符串中特定位置的文本颜色。在这种情况下,子字符串(如果存在)的位置每次使用都会有所不同。

对此提供帮助将不胜感激。 谢谢。

最佳答案

您需要使用 NSAttributedString 来实现此目的。 查看这篇文章: http://ramezanpour.net/post/2014/01/28/customize-your-texts-in-ios-using-nsattributedstring/

使用 substringWithRange 方法查找需要加粗或更改颜色的字符串的范围,然后使用返回的范围,如教程中所示。

关于ios - 更改动态字符串中的子字符串颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571091/

相关文章:

ios - 在 iOS 3+ 中对称加密字符串的正确且安全的方法

c# - 将一些字符串注入(inject)到 C# 中字符串的特定部分

XCode Swift - 从核心数据中删除

ios - 获取不可见的 CollectionView 单元格

iphone - 方法调用乱序

iphone - 如何在数据导入 CoreData 时显示 progressBar?

ios - 在 Salesforce iOS SDK 中查询用户名

java - 查找不同行星上的年龄

根据定界符反转/翻转两个字符串的两侧?

swift - Linux 是否支持 URLSession?