LoginSignup
14
7

More than 3 years have passed since last update.

UILabelを配列に入れてみる

Last updated at Posted at 2017-10-10

どうも、こんにちはTOSHです!

最近、Swiftでiosアプリ制作にはまっているのですが、その際にたくさんのUILabelに対して、同じ動作をさせる際に、配列に入れられたらなぁと思っていたのですが、それについての記事がなかったので書かせていただきます。

方法A

UILabelを配列にしてみる

まずは、storyboardにlabelを5つほど置いてみます。
スクリーンショット 2017-10-10 13.10.48.png

ここからは、コードにうつります
通常、UILabelを関連付けする際には、

ViewController.swift
@IBOutlet weak var label: UILabel!

のように書きますが、UILabelを配列にする際には、weak参照はできないので
下のように書きます。

ViewController.swift
@IBOutlet var labelArray: [UILabel] = []

このように書くと、UILabelの配列を作成できます。
そして、関連付けをしていく順番に
UILabelArray[0] UILabelArray[1] UILabelArray[2]
と定義されていきます。

実際にできているのかを確認してみる

ViewContorller.swift
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        for i in 0...4{
            labelArray[i].text = "label number \(i)"
        }
    }

のようにやってみると、(for文の中身は一行ですが、Swiftでは一行であっても{}を省略はできないので注意してください!)

スクリーンショット 2017-10-10 13.11.02.png

無事、labelを配列に置き換えることができました。

これで完成です。お疲れ様でした。

サンプルプログラム

参考までに、githubに、サンプルプログラムを載せて置いたので参考にしてください!
サンプルプログラム

方法B

もう一つ方法があります。
そもそも、UILabelの配列の変数を作ってしまい。一つ一つUILabelを@IBOutLetで定義をしてあげ、
その配列の中に入れてしまう方法です。

@IBOutlet weak var label0: UILabel!
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var label3: UILabel!

let labelArray: [UILabel] = [label0, label1, label2, label3]

方法Aでは、UIパーツの弱参照が切れてしまうので、こちらの方法をとると弱参照を保持したまま、配列にすることができます。
正直どっちがいいのかは一長一短なので、使いやすさに応じて使ってみてくださいー!

14
7
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
14
7