web-dev-qa-db-ja.com

NSAttributedStringの範囲を設定する方法は?

構文の使用と少し混乱しています。 NSFontAttributeNameを使用することになっていることは知っていますが、範囲を正しく指定する方法がわかりません。

私は2つのケースについて興味があります。

テキスト内のすべての文字の範囲を指定するにはどうすればよいですか。また、範囲を最初の10文字のように指定するにはどうすればよいですか。

助言がありますか?

8
Stefan

魔法の数字を使わないでください

let baseString = "Don't use magic numbers."

let attributedString = NSMutableAttributedString(string: baseString, attributes: nil)

let dontRange = (attributedString.string as NSString).range(of: "Don't")
attributedString.setAttributes([NSFontAttributeName: UIFont.boldSystemFont(ofSize: 18)], range: dontRange)

だからメタ

17
Fernando Mazzon

XCode10およびSwift 4では、次のように使用しました。

let customizedText = NSMutableAttributedString(string: "My Text")
customizedText.addAttribute(NSAttributedString.Key.strokeWidth, value: 5.0, range: NSRange(location: 0, length: customizedText.string.count))
customizedText.addAttribute(NSAttributedString.Key.strokeColor, value: #colorLiteral(red: 0.5725490451, green: 0, blue: 0.2313725501, alpha: 1), range: NSRange(location: 0, length: customizedText.string.count))
myLabel.attributedText = customizedText
1
Mahdi Moqadasi