LoginSignup
0
1

More than 1 year has passed since last update.

[Swift5] User Defined Runtime Attributesを使用して、Storyboardからプロパティの初期値を設定してみた

Last updated at Posted at 2021-05-09

はじめに

UIを設定するプロパティの初期値をStoryboardから設定してみたので、備忘録としてその手順を記します。

環境

[Xcode] Version 12.4
[Swift] Version 5.3.2

実装手順

Storyboardの[Identity Inspector]タブのUser Defined Runtime Attributesに「+」を押して設定するだけです。
「Key Path」にプロパティ名を、「Type」には今回はColorを、「Value」には設定したい色を入れます。
1.png
但し、コードでプロパティを定義するときに、@objc dynamicをつける必要があります。
Objective-CのクラスやメソッドをSwiftでも使えるようにするためのキーワードのようです。

FirstViewController
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がうまく効かないところがあった

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1