質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2877閲覧

複数のボタンを、1つの変数でまとめたい。

kazuki_user

総合スコア147

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/08/05 09:14

## 複数のボタンを、1つの変数でまとめたい。

Button1~4を、Buttonsでまとめ、Outletとして接続したいです。

-@IBOutlet weak var Button1: UIButton!のように、一行ずつ指定しなければいけないのでしょうか?
お時間あるときに、ご返信頂けましたら幸いです????

## コード

error

1import UIKit 2 3class ViewController: UIViewController { 4 5 6 @IBOutlet weak var Button1: UIButton! 7 @IBOutlet weak var Button2: UIButton! 8 @IBOutlet weak var Button3: UIButton! 9 @IBOutlet weak var Button4: UIButton! 10 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 // Do any additional setup after loading the view. 15 Button1.layer.cornerRadius = 6 16 Button2.layer.cornerRadius = 6 17 Button3.layer.cornerRadius = 6 18 Button4.layer.cornerRadius = 6 19 20 } 21 22 23 24} 25

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Outlet Collection という機能を使えば可能かと思います。

まず一つ目の部品を選択し、コード画面にドラッグします。
ドラッグしたときのポップアップウインドウですが、

イメージ説明

通常の Outlet ではなく、Outlet Collection を選択します。

この状態では一つの部品しか関連付いていませんので、コード左側の ◉ をドラッグし、Outlet Collection として使いたい部品にドラッグし、関連づけていきます。

ちなみに、ひとつの Action を複数の部品で共有することも可能です。
この場合、Action は普通と同じような感じで作成します。

その後、共有したい Action の左側にある ◉ を共有したい部品にドラッグし関連づけていきます。

Action は Outlet と違い、違うパーツ(クラス)で共有させることも可能です。

Swift

1import UIKit 2 3class ViewController: UIViewController { 4 @IBOutlet var buttons: [UIButton]! 5 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view. 10 for button in buttons { 11 button.backgroundColor = .orange 12 button.layer.cornerRadius = 6 13 } 14 } 15 16 17 @IBAction func button(_ sender: UIButton) { 18 19 switch sender { 20 case buttons[0]: 21 print("Button 1") 22 23 case buttons[1]: 24 print("Button 2") 25 26 case buttons[2]: 27 print("Button 3") 28 29 case buttons[3]: 30 print("Button 4") 31 32 default: 33 print("該当無し") 34 } 35 36 } 37}

ただ、複数の部品をひとまとめにしても、それが Index とどのように関連づいているのは分かりにくいため、あまり使い回しは効かないかもしれません。

投稿2020/08/05 10:00

TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazuki_user

2020/08/05 11:11

ご返信ありがとうございます! 無事解決いたしました。 [ ] や、forを使うんですね????参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問