我有一个应用程序,我需要突出单词。它就像有声读物,读并突出阿拉伯文本。
有一些方法可以高亮显示标签中的特定子字符串,但我不想那样做。我想做些类似的事情。让我们考虑跟随sentance。
我是一名iOS开发人员&我在BEE技术公司工作
现在,我想说的是,突出字符号
1-1, -> I
3-4, -> am
6-7, -> an
9-11, ->iOS
13-21, ->Developer
因为我不认为有任何方法可以简单地逐字逐句地高亮到行尾。
发布于 2017-01-16 10:28:34
这是一个通用的解决方案,可能不是最好的解决方案,但至少它对我有用,因为它应该.
我几乎要面对同样的情况,我为实现这一目标所做的一切(考虑到这些步骤):
下面是如何生成NSRange数组的示例
let myText = "I am an iOS Developer"
let arrayOfWords = myText.components(separatedBy: " ")
var currentLocation = 0
var currentLength = 0
var arrayOfRanges = [NSRange]()
for word in arrayOfWords {
currentLength = word.characters.count
arrayOfRanges.append(NSRange(location: currentLocation, length: currentLength))
currentLocation += currentLength + 1
}
for rng in arrayOfRanges {
print("location: \(rng.location) length: \(rng.length)")
}
/* output is:
location: 0 length: 1
location: 2 length: 2
location: 5 length: 2
location: 8 length: 3
location: 12 length: 9
*/
cuurentSecond
-for示例,并将其增加1/秒)。根据当前的秒数,您可以确定哪个单词应该高亮显示。例如:假设"I“应该在0到1秒之间突出显示,"am”应该在2到3秒之间突出显示,现在您可以检查cuurentSecond
在0和1之间是否突出显示"I",如果是在2到3之间突出显示"am“等等.如何在我的UITextView中用Swift一个一个地改变一些单词的风格?
希望这能帮上忙..。
https://stackoverflow.com/questions/41670716
复制相似问题