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

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

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

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

Swift

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

Q&A

解決済

1回答

235閲覧

swift4にて、コードで作成した複数ボタンについて、全ボタンをタッチしていない状態にするボタンを作成したい

finfinale

総合スコア13

iOS

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

Swift

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

0グッド

0クリップ

投稿2019/01/31 13:45

前提・実現したいこと

swiftにてコードで同名のボタンを複数作りました。
作成したボタンはタッチした時に色を変更できます。

別途、初期化ボタンを設けて、初期化ボタン押下時には、
タッチして色を変えていた全ボタンを元の色に戻したいです。

発生している問題・エラーメッセージ

初期化ボタン押下時に全ボタンの色を元に戻したいのですが、 実装方法がわかりません。 お教えいただけると幸いです。

該当のソースコード

swift4

1import UIKit 2 3class ViewController: UIViewController { 4 5 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 let screenWidth: CGFloat = UIScreen.main.bounds.size.width 11 let screenHeight: CGFloat = UIScreen.main.bounds.size.height 12 var idxCnt: UInt 13 idxCnt=1 14 for i in 0..<2 { 15 for j in 0..<5 { 16 if idxCnt <= 10{ 17 let button = UIButton(frame: CGRect(x:〜,y:〜,width:〜,height:3〜 181920 button.addTarget(self, action: #selector(pressButton(_:)), for: .touchUpInside) 21 self.view.addSubview(button) 22 idxCnt = idxCnt + 1 23 } 24 } 25 } 26 27let initButton = UIButton(frame: CGRect(x:〜,y:〜,width:〜,height:3〜 2829initButton.addTarget(self, action: #selector(crearButton(_:)), for: .touchUpInside) 30self.view.addSubview(initButton) 31 32 33 34 @objc func pressButton(_ sender:UIButton){ 35 //タップしたボタンの色を変更 36 sender.backgroundColor = UIColor.init(red: 0, green: 122/255, blue: 1, alpha: 1) 37 sender.setTitleColor(UIColor.white, for: .normal) 38 } 39 40 @objc func pressButton(_ sender:UIButton){ 41 //タップしていた全ボタンの色を元に戻したいが。。。やり方がわかりません 42 43 } 44 45### 試したこと 46 47詰まってしまい何もできていません。。 48 49### 補足情報(FW/ツールのバージョンなど) 50 51ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

一つの解決策としては、UIButtonの配列をグローバル変数で宣言すればいいのではないでしょうか?
ボタンを押した時、その配列を読み込み、for文で回し、各々の色を変えれば解決すると思います。
もしくは、ボタン生成時にtagをつけて、tagも同様にfor文で回して、色を変更すればいいのではないでしょうか?

投稿2019/01/31 18:35

hameji001

総合スコア639

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

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

finfinale

2019/02/01 00:18

ありがとうございます。配列に入れることで対応できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問