[Swift5] User Defined Runtime Attributesを使用して、Storyboardからプロパティの初期値を設定してみた
はじめに
UIを設定するプロパティの初期値をStoryboardから設定してみたので、備忘録としてその手順を記します。
環境
[Xcode] Version 12.4
[Swift] Version 5.3.2
実装手順
Storyboardの[Identity Inspector
]タブのUser Defined Runtime Attributes
に「+
」を押して設定するだけです。
「Key Path」にプロパティ名を、「Type」には今回はColorを、「Value」には設定したい色を入れます。
但し、コードでプロパティを定義するときに、@objc dynamic
をつける必要があります。
Objective-CのクラスやメソッドをSwiftでも使えるようにするためのキーワードのようです。
import UIKit
final class FirstViewController: UIViewController {
@IBOutlet private weak var centerLabel: UILabel!
//ラベルの背景色を設定する変数に対して、StoryboardからColorを設定する
@objc
dynamic var labelBackgroundColor = UIColor(red: 0.1, green: 0.2, blue: 0.6, alpha: 1.0)
override func viewDidLoad() {
super.viewDidLoad()
//ラベルの背景色を設定したColorにする
centerLabel.backgroundColor = labelBackgroundColor
}
}
今のところ、Colorを含めて11種類 (Boolean, Number, String, Localized String, Point, Rect, Range, Color, Image, Nil)のTypeを指定できるので、色々試してみたいと思います。
参考文献
この記事は以下の情報を参考にしました。
- dynamic var を理解するための極意 - swift
- Swift4でUser Defined Runtime Attributesがうまく効かないところがあった
Author And Source
この問題について([Swift5] User Defined Runtime Attributesを使用して、Storyboardからプロパティの初期値を設定してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/mtkmr/items/1ae152d9dca0e14296d5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .