【问题标题】:How do I uses addAttribute and NSRANGE in swift 3如何在 swift 3 中使用 addAttribute 和 NSRANGE
【发布时间】:2017-02-09 19:16:26
【问题描述】:

您好,我正在尝试在 Swift3 中使用 addAttribute

我只想设置粗体 IDNAME。

这是我正在尝试的。

let boldUsername = NSMutableAttributedString(string: "IDNAME hi nice 2 meet you :D #HELLOW")


//            boldUsername.addAttribute(NSFontAttributeName, value: UIFont(name: "SFUIText-Bold", size: 14)!, range: (boldUsername.string as NSString).range(of: " "))

            boldUsername.addAttribute(NSFontAttributeName, value: UIFont(name: "SFUIText-Bold", size: 14)!, range: NSRange(location: 0, length: 5))

如何获取 IDNAME 的索引,即每次都不同?

-> 有没有办法分割空间并获取索引?

【问题讨论】:

  • 你能解释一下“我如何获得字符串计数”,这是什么意思?
  • 你检查过this 吗?
  • @NiravD 我想获取字符串索引。例如 > "IDNAME hi ~~~" I 是索引 0。E 是索引 5。那么如何获取 ID 索引的结尾?感谢回复
  • 你的意思是 idname 是运行时名称,你想要它的范围。对吗?
  • @NiravD 是的,完全正确。我正在制作评论视图。

标签: swift swift3 nsattributedstring nsrange addattribute


【解决方案1】:

你需要做这样的事情。

let personName = "Black"
let wholeStr = "\(personName) hi nice 2 meet you :D #HELLOW"
let boldUsername = NSMutableAttributedString(string: wholeStr)
boldUsername.addAttribute(NSFontAttributeName, value: UIFont(name: "SFUIText-Bold", size: 14)!, range: (wholeStr as NSString).range(of: personName))

【讨论】:

  • 非常容易理解。不错的答案
  • @Vats 欢迎和感谢 :)
  • 可能想将 value: UIFont(name: "SFUIText-Bold", size: 14)! 更改为 value: UIFont.boldSystemFont(ofSize: 14) - 很确定前者会在运行时崩溃(强制展开 nil 可选)。
  • @worthbak 谢谢你的建议 :),但是这个关于addAttribute 和范围的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 2012-05-26
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 2017-02-17
  • 2017-07-26
相关资源
最近更新 更多