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

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

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

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

Swift

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

Q&A

解決済

1回答

787閲覧

tableViewCellで押したボタンの背景色の色を薄くしたい。

ohoh5454

総合スコア92

Xcode

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

Swift

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

0グッド

0クリップ

投稿2020/02/12 08:46

tableViewを作成中なのですが、cellに配置したbuttonを押したときにそのボタンの色を薄くしたいのですが、いろいろ試したのですがうまくいきませんでした。
tableViewCellは別ファイルでxibで作成してますが部品を設置してコードに関連づけた程度でその他のcellの設定はcellForRowAtで作成してます。
コードは下記の通りです。
アドバイスよろしくお願い致します。

swift

1import UIKit 2 3 4class SettingViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate{ 5 6 7 8 @IBOutlet weak var tableView: UITableView! 9 @IBOutlet weak var plusButton: UIButton! 10 @IBOutlet weak var saveCheck: UILabel! 11 @IBOutlet weak var doneButton: UIButton! 12 @IBOutlet weak var rouletteTitle: UITextField! 13 @IBOutlet weak var checkBox: UIButton! 14 15 var cell = TableViewCell() 16 17 var cellCount = 0 18 var checkCount = 0 19 20 21 override func viewDidLoad() { 22 super.viewDidLoad() 23 24 tableView.delegate = self 25 tableView.dataSource = self 26 rouletteTitle.delegate = self 27 28 tableView.register(UINib(nibName: "TableViewCell", bundle: nil), forCellReuseIdentifier: "cellSample") 29 tableView.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height - (plusButton.frame.size.height + saveCheck.frame.size.height + doneButton.frame.size.height)) 30 tableView.separatorStyle = .singleLine 31 tableView.allowsSelection = false 32 33 34 35 } 36 37 38 39 override func viewWillAppear(_ animated: Bool) { 40 super.viewWillAppear(animated) 41 42 navigationController?.isNavigationBarHidden = false 43 44 } 45 46 47 //セルの数 48 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 49 50 return cellCount 51 52 } 53 54 //セクションの数 55 func numberOfSections(in tableView: UITableView) -> Int { 56 return 1 57 } 58 59 60 //セルの構築 61 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 62 cell = tableView.dequeueReusableCell(withIdentifier: "cellSample") as! TableViewCell 63 //セル上のボタン(色) 64 65 cell.colorButton.tag = indexPath.row 66 cell.colorButton.addTarget(self, action: #selector(pushButton(_:)), for: .touchUpInside) 67 if indexPath.row % 10 == 0{ 68 cell.colorButton.backgroundColor = UIColor(red: 255/255, green: 255/255, blue: 0/255, alpha: 1.0) 69 }else if indexPath.row % 10 == 1{ 70 cell.colorButton.backgroundColor = UIColor(red: 255/255, green: 190/255, blue: 0/255, alpha: 1.0) 71 }else if indexPath.row % 10 == 2{ 72 cell.colorButton.backgroundColor = UIColor(red: 255/255, green: 35/255, blue: 0/255, alpha: 1.0) 73 }else if indexPath.row % 10 == 3{ 74 cell.colorButton.backgroundColor = UIColor(red: 255/255, green: 0/255, blue: 255/255, alpha: 1.0) 75 }else if indexPath.row % 10 == 4{ 76 cell.colorButton.backgroundColor = UIColor(red: 200/255, green: 70/255, blue: 255/255, alpha: 1.0) 77 }else if indexPath.row % 10 == 5{ 78 cell.colorButton.backgroundColor = UIColor(red: 30/255, green: 120/255, blue: 255/255, alpha: 1.0) 79 }else if indexPath.row % 10 == 6{ 80 cell.colorButton.backgroundColor = UIColor(red: 80/255, green: 220/255, blue: 255/255, alpha: 1.0) 81 }else if indexPath.row % 10 == 7{ 82 cell.colorButton.backgroundColor = UIColor(red: 0/255, green: 255/255, blue: 0/255, alpha: 1.0) 83 }else if indexPath.row % 10 == 8{ 84 cell.colorButton.backgroundColor = UIColor(red: 40/255, green: 40/255, blue: 190/255, alpha: 1.0) 85 }else if indexPath.row % 10 == 9{ 86 cell.colorButton.backgroundColor = UIColor(red: 200/255, green: 200/255, blue: 200/255, alpha: 1.0) 87 } 88 89 90 91 //セル上のテキストフィールド(タイトル) 92 cell.itemTitle.placeholder = "項目タイトル" 93 cell.itemTitle.textAlignment = .center 94 95 96 //セル上のテキストフィールド(比率) 97 cell.raitoInit.text = "1" 98 cell.raitoInit.textAlignment = .center 99 cell.raitoInit.keyboardType = UIKeyboardType.numberPad 100 cell.raitoLabel.text = "比率" 101 102 103 return cell 104 105 } 106 107 108 //セルの高さ 109 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 110 111 return view.frame.size.height/10 112 113 } 114 115 //colorButtonを押したとき 116 @objc private func pushButton(_ sender: UIButton) { 117 118 print(sender.tag) 119 120 121 }

addTargetにてbuttonのactionを作り、その中で、sender.tagで押したボタンの判別はできているのですがそのボタンを指定して色を変化させる方法がわからないです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

色を変えるだけならsenderからつかまえて変えられないですか?

https://teratail.com/questions/225911#reply-330382

投稿2020/02/12 10:14

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ohoh5454

2020/02/12 16:43

アドバイス通りできました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問