快速为所有出现的字符串着色

2024-01-10

这段代码

var textSearch="hi"
var textToShow="hi hihi hi" 
var rangeToColor = (textToShow as NSString).rangeOfString(textSearch)
var attributedString = NSMutableAttributedString(string:textToShow)
attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.yellowColor() , range: rangeToColor)
TextView.attributedText=attributedString

给我 NSRange 来为 TextView 内的字符串着色。 问题是我只返回第一次出现的情况。 如果单词包含“hi hihi hi”,则仅第一个“hi”被着色。 如何获取字符串的所有出现位置?


Swift 5

let attrStr = NSMutableAttributedString(string: "hi hihi hey")
let inputLength = attrStr.string.count
let searchString = "hi"
let searchLength = searchString.characters.count
var range = NSRange(location: 0, length: attrStr.length)

while (range.location != NSNotFound) {
    range = (attrStr.string as NSString).range(of: searchString, options: [], range: range)
    if (range.location != NSNotFound) {
        attrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.yellow, range: NSRange(location: range.location, length: searchLength))
        range = NSRange(location: range.location + range.length, length: inputLength - (range.location + range.length))
    }
}

Swift 3

let attrStr = NSMutableAttributedString(string: "hi hihi hey")
let inputLength = attrStr.string.characters.count
let searchString = "hi"
let searchLength = searchString.characters.count
var range = NSRange(location: 0, length: attrStr.length)

while (range.location != NSNotFound) {
    range = (attrStr.string as NSString).range(of: searchString, options: [], range: range)
    if (range.location != NSNotFound) {
        attrStr.addAttribute(NSForegroundColorAttributeName, value: UIColor.yellow(), range: NSRange(location: range.location, length: searchLength))
        range = NSRange(location: range.location + range.length, length: inputLength - (range.location + range.length))
    }
}

Swift 2

let attrStr = NSMutableAttributedString(string: "hi hihi hey")
let inputLength = attrStr.string.characters.count
let searchString = "hi"
let searchLength = searchString.characters.count
var range = NSRange(location: 0, length: attrStr.length)

while (range.location != NSNotFound) {
    range = (attrStr.string as NSString).rangeOfString(searchString, options: [], range: range)
    if (range.location != NSNotFound) {
        attrStr.addAttribute(NSForegroundColorAttributeName, value: UIColor.yellowColor(), range: NSRange(location: range.location, length: searchLength))
        range = NSRange(location: range.location + range.length, length: inputLength - (range.location + range.length))
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速为所有出现的字符串着色 的相关文章

  • 由于语言错误,Itunes Connect 无法提交

    Thats all it shows https i stack imgur com 0aZm8 png 我不确定它没有告诉我出了什么问题 it shows its linked to the language https i stack
  • NSDateFormatter 返回错误的日期 + Swift

    Code let dateString 2016 04 02 var formatter NSDateFormatter NSDateFormatter formatter timeZone NSTimeZone abbreviation
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • iOS 11 安全区域布局指南向后兼容性

    启用安全区域布局指南是否与 iOS 11 以下版本兼容 我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性 编辑 正如 NickEntin 的评论所指出的 此实现将假定存在状态栏 但在 iPhone X 的横
  • ITMS-90535 无法使用最新的 Google Signin SDK 发布 iOS 应用程序

    我正在使用 xcode 7 GM 种子并通过 cocoapods 安装了最新的 Google Signin SDKpod Google SignIn 当我尝试将我的应用程序发布到苹果应用程序商店时 我收到附加错误 Help 以下是 Goog
  • PresentModalViewController 不执行任何操作

    我有一个 UIViewController parent 调用presentModalViewController与另一个 UIViewController child on viewDidLoad If parent没有 UINaviga
  • Swift 中带圆角的 NSWindow

    我想要一个圆角的窗户 但我在每个角落都有一个白点 Code let effect NSVisualEffectView frame NSRect x 0 y 0 width 0 height 0 effect blendingMode be
  • 将 Xcode 的测试类助理编辑器与 Swift 类结合使用

    在 Xcode 中工作时 在助理编辑器中提取单元测试用例通常会很好 目前 我一直在手动选择测试文件 但我看到助理编辑器有一个选项Test Classes 我试图让这个选项自动提取我的测试文件 但我似乎无法让它工作 是否需要某种配置 它不适用
  • 在 Swift 中自动移动 UISlider

    我想在按下按钮时将 UISlider 从 minValue 循环移动到 maxValue 并在再次按下按钮时将其停止在当前位置 我想使用 Swift 我遇到的主要问题是函数 slider setValue 太快了 我希望动画更慢 IBAct
  • Swift 中具有透明背景的按钮边框

    我怎样才能做一个UIButton边框看起来像下图 入门 按钮一样具有透明背景吗 我应该如何使用情节提要来实现这一点 或者如何以编程方式实现这一点 设置backgroundColor to clearColor使按钮透明 例如尝试下面的代码
  • 无法转换“UINavigationController”类型的值

    我正在为我的应用程序实现一个搜索界面 因此基本上我会将搜索关键字从一个 ViewController 传递到另一个 ViewController 我已经多次进行过这种类型的参数传递 但这次似乎有些奇怪 目标 ViewController 嵌
  • 混合静态和动态 UITableViewController 内容会导致 NSRangeException

    我一直在寻找这个错误 并找到了一些具有类似行为的帖子 但没有解决问题的解决方案 我有一个 UITableViewController 在 SB 中声明为静态 它具有以下部分 第 0 部分 配方 是静态的 有 4 个单元格 第 1 部分 口味
  • PrepareForSegue之谜

    我在两个不同的 VC 中有一个prepareForSegue 方法 一个使用一个if声明 而另一个旨在使用switch 除了名称之外 代码几乎相同 这个效果很好 void prepareForSegue UIStoryboardSegue
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • 使用 UIImageJPEGRepresentation 时,compressionQuality 应该是多少?

    我想对用户库中的照片应用滤镜 然后将其写回磁盘 我在用着UIImageJPEGRepresentation 该函数需要一个UIImage and a compressionQuality值介于 0 0 和 1 0 之间 因为我想保留原始质量
  • Xcode 9 中的“addingPercentEncoding”是否损坏?

    在 Swift 3 x 和 Xcode 9 beta 2 中 使用addingPercentEncoding https developer apple com documentation swift string 1690785 addi
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 在 iOS 上从 GPS 获取时间

    我正在开发一个跟踪器应用程序 该应用程序需要高精度地了解设备位置 即它使用位置服务并忽略水平精度低于 20 米的位置 CLLocation没有明确声明是否通过 GPS 确定 但是 如果水平精度为 20 米或更好 则可以认为它是来自 GPS
  • ResponseSerializer“无法使用 Swift 3 调用非函数类型“NSHTTPURLResponse”的值?

    我一直在使用以下代码 没有出现任何问题 直到更新到 Xcode 8 beta 6 它类似于这个例子 https github com Alamofire Alamofire generic response object serializa

随机推荐

  • 在 apache httpd 反向代理和 Tomcats 之间进行双向 SSL 身份验证

    我有一个 Apache HTTPD 作为反向代理 还有 Tomcat 6 0 35 服务器 我想要实现的是 Tomcat 服务器和反向代理之间存在相互信任 这意味着当反向代理转发请求时 它将提供自己的证书 该证书将被导入到 Tomcat 的
  • Bash 管道到 python

    我需要通过管道实时吸收 bash 命令的输出 例如 for i in seq 1 4 do echo i sleep 1 done script py script py 哪里有这个 for line in sys stdin readli
  • Objective-C:如何在运行时更改对象的类?

    我试图回答将 UITableView 子类与 UITableViewController 一起使用 https stackoverflow com questions 874906 using a uitableview subclass
  • 在Python中使用psycopg2获取插入行到Redshift表的自动ID

    我正在将一条记录插入亚马逊红移表来自Python 2 7 using psycopg2库 我想取回插入行的自动生成主 ID 我尝试了使用谷歌搜索在这里或其他网站中找到的常用方法 例如 conn psycopg2 connect conn s
  • 在 BigQuery 中“创建表为”

    如何根据结果创建表格select在 BigQuery 中查询 例如 create table abc as select x y z from mnp 有什么方法或解决方法可以在 BigQuery 中实现相同的目的吗 有线索吗 只需尝试在创
  • 如何从 Codeigniter 中的控制器调用模型?

    我想要一个网页 主要内容是通过ajax视图使用的 和一个菜单侧边栏 我的应用程序视图文件夹是 pages home templates header footer 我的主页控制器是
  • 如何?解析器 PDF 到 Javascript 数组?

    如何使用 JavaScript 手动将 PDF 文档解析为单词数组 我不关心图像 数字 表格 只关心单词 因为我可以将其作为 JavaScript 对象来使用 有一个著名的 JavaScript 库叫做jspdf https code go
  • 什么是reverse()?

    当我有时阅读 Django 代码时 我会在一些模板中看到reverse 我不太确定这是什么 但它与 HttpResponseRedirect 一起使用 这是如何以及何时reverse 应该使用吗 reverse Django 文档 http
  • java/maven如何解决运行时的依赖冲突

    抱歉我的新手问题 假设我有一个包 A 它在其 Maven 文件中声明 B C 作为其依赖项 B C 使用两个不同版本的 log4j 进行日志记录 我有一些问题 如果我使用maven 并将B C声明为A的依赖项 当maven从mavencen
  • 如何解决 @typescript-eslint/no-var-requires 错误。添加@axe-core/react时出错

    我已通过以下方式将 axe core react 添加到我的项目中 npm install save dev axe core react 现在 我在 index tsx 中添加了以下代码以使其启动并运行 if process env NO
  • Angular2日期管道自动添加时区到日期

    我有一个日期字符串 像这样1987 06 15T00 00 00 000Z 当我在其上添加日期管道时 日期显示不同的日期 例如Jun 14 1987在美国时区 但在印度 它显示正确 div 1987 06 15T00 00 00 000Z
  • R :在已部署的 ShinyApp 中仅加载一次 .RData

    我需要部署一个 ShinyApp闪亮服务器 https www rstudio com products shiny shiny server 要运行 我的应用程序需要来自 RData文件 300 Mo 这 RData文件加载了load 语
  • 检查一个对象是否属于Java中的一个类[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来验证对象是否属于给定的类 例如 我可以这样做 if a getClass new MyClass getClass do something 但这需要每次都动态实例化一个新对象 然后将其丢弃
  • 核心数据和 NSUserDefaults-notes 应用程序之间的区别

    创建一个预算应用程序 不是为了发布 只是一些快速而肮脏的东西 我注意到在启动主从模板时 Apple 使用 Core Data 和 NSFetch 结果来填充表格 想想 iPad 上的 Notes 我缺乏经验且不专业的编程本能不会三思而后行
  • 在 Vim 中重命名当前文件

    我应该如何在 Vim 中重命名当前文件 例如 我正在编辑person html erb spec rb 我希望将其重命名为person haml spec rb 我想继续编辑person haml spec rb 我该如何优雅地做到这一点
  • 所有物理驱动器的列表

    如何获取 UWP Windows 10 应用程序中所有物理驱动器的列表 我尝试使用Windows Storage KnownFolders 但这样我只能从库中获取文件夹 In UWP你不能像这样列出所有文件 驱动器 使用官方 API 这是设
  • 如何理解Seaborn的热图标注格式

    我正在寻找一种方法将 0 0045 显示为 0 45 seaboarn的热图 通过指定fmt关键词 sns heatmap data annot True fmt 但是 我没有找到要使用的格式列表 在不同的示例之间搜索 我看到了 d 2g
  • 我无法在 gitlab 的 wiki 功能中添加到美人鱼流程图的超链接

    我想使用我的流程图作为目录 它还按时间顺序模糊地表示并行事件的进展及其彼此之间的关系 我知道使用 Markdown 创建这些图表 通过为 B 节点添加 单击 行 当将鼠标悬停在该节点上时 我可以看到光标发生变化 就好像它是一个链接一样 但任
  • 动态链接自定义路径未应用于 Firebase 身份验证

    我已经设置了Firebase 动态链接具有以下格式的 URL a b c d 然而 emails由 发送Firebase 身份验证包含格式的动态链接a b c link 代替a b c d link 这意味着它们不起作用 我跟着本指南 ht
  • 快速为所有出现的字符串着色

    这段代码 var textSearch hi var textToShow hi hihi hi var rangeToColor textToShow as NSString rangeOfString textSearch var at