【问题标题】:How to split a NSAttributedString into an Array of NSAttributedString如何将 NSAttributedString 拆分为 NSAttributedString 数组
【发布时间】:2019-05-06 14:41:58
【问题描述】:

我有一个 NSAttributedString 并且想在每个 “***“ 处拆分它。所以实际上,我想在这个字符串出现的任何地方分割一个 NSAttributedString 。结果应该类似于 NSAttributedStrings 数组。 感谢您的帮助!

【问题讨论】:

  • 您需要找到自己的不同范围的“***”(使用.string 属性)并使用attributedSubstringFromRange:。没有内置方法,所有手动/旧学校重做和componentsSeparatedByString

标签: swift string split nsattributedstring


【解决方案1】:

您可以将此扩展用于 NSAttributedString

private extension NSAttributedString {
    func components(separatedBy separator: String) -> [NSAttributedString] {
        var result = [NSAttributedString]()
        let separatedStrings = string.components(separatedBy: separator)
        var range = NSRange(location: 0, length: 0)
        for string in separatedStrings {
            range.length = string.count
            let attributedString = attributedSubstring(from: range)
            result.append(attributedString)
            range.location += range.length + separator.count
        }
        return result
    }
}

示例`

let atributedString: NSAttributedString = NSAttributedString(string: "A***B***C***D")
let resultArray = atributedString.components(separatedBy: "***")
for atString in resultArray {
    print(atString)
}

【讨论】:

    猜你喜欢
    • 2014-06-15
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    相关资源
    最近更新 更多