SF SymbolsというAppleの提供しているアイコンを使える機能を試してみました。
SF Symbols + UIImageでアイコンを表示する
使い方は簡単で、下のようにUIImageの初期化でアイコン名を渡すだけです。
引数のラベルがUIImage(name: "")
ではなくUIImage(systemName: "")
なのでそこだけ注意して下さい。
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let imageView = UIImageView(image: UIImage(systemName: "doc.badge.gearshape.fill")) imageView.frame.size = CGSize(width: 100, height: 100) imageView.center = view.center view.addSubview(imageView) } }
実行すると下のようにアイコンを表示できます。
アイコン名を確認したい時は下URLからアプリをダウンロードして下さい。
アプリを起動すると下のようにアイコン一覧とアイコン名が表示されます。
画像の色を変えたい場合、下のようにtintColorを変更します。
imageView.tintColor = .red
画像が赤になりました。
画像はベクターデータの為、大きくしても劣化しません。
下はサイズを500x500に変更したものです。
SF Symbols + UILabelで文字の中にアイコンを入れる
SF Symbolsは画像でしか取れないので、文字の中に入れたい場合は下のようにNSTextAttachmentを使います。
let label = UILabel() let text = NSMutableAttributedString(string: "アイコン前") text.append(NSAttributedString(attachment: NSTextAttachment(image: UIImage(systemName: "doc.badge.gearshape.fill")!))) text.append(NSAttributedString(string: " 後")) label.attributedText = text label.sizeToFit() label.center = view.center view.addSubview(label)
実行すると文字の間にアイコンが入った事が分かります。