一种方便快捷的创建 AttributedString
的方法。
StringInChain 为你提供了一个创建指定的方式来创建 attributed string。
使用旧的方式,创建一个属性字符串是脏的并且复杂的。
let baseString: NSString = "String In Chain"
var attrText = NSMutableAttributedString(string: baseString as String)
attrText.addAttribute(NSForegroundColorAttributeName, value: UIColor.blueColor(), range: baseString.rangeOfString("String"))
attrText.addAttribute(NSFontAttributeName, value: UIFont(name: "Avenir", size: 30.0)!, range: baseString.rangeOfString("String"))
attrText.addAttribute(NSUnderlineStyleAttributeName, value: 1, range: baseString.rangeOfString("In"))
attrText.addAttribute(NSUnderlineColorAttributeName, value: UIColor.yellowColor(), range: baseString.rangeOfString("In"))
attrText.addAttribute(NSStrokeWidthAttributeName, value: 1, range: baseString.rangeOfString("Chain"))
attrText.addAttribute(NSStrokeColorAttributeName, value: UIColor.blackColor(), range: baseString.rangeOfString("Chain"))
label.attributedText = attrText
let baseString = "String In Chain"
var attrText = baseString.chain { (string) -> Void in
string.match("String").withColor(UIColor.blueColor()).withFont(UIFont(name: "Avenir", size: 30.0)!)
string.match("In").underline(1, andColor: UIColor.yellowColor())
string.match("Chain").withStroke(1, andColor: UIColor.blackColor())
}
label.attributedText = attrText.attrString
而不仅仅是对match(text: String)
(这种方式只能找到字符串的第一个出现),你可以使用
match(from: Int, to:Int)
示例
string.match(from: 7, to: 10).withColor(UIColor.blueColor()).withFont(UIFont(name: "Avenir", size: 30.0)!)
这样你就可以通过匹配范围 from
和 to
来创建 AttributedString
如果你愿意,还有一个快速的内联方法来创建 AttributedString
label.attributedText = "String In Chain".match("String").withColor(UIColor.blueColor()).withFont(UIFont(name: "Avenir", size: 30.0)!).attrString
干净利落,不是吗?
要运行示例项目,请克隆存储库,并首先从 Example 目录运行 pod install
。
StringInChain 通过 CocoaPods 提供。为了安装它,只需将以下行添加到 Podfile 中:
pod "StringInChain"
Lukasz Solniczek,[email protected]
StringInChain 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。