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

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

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

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

Q&A

解決済

1回答

459閲覧

tablecellを一つだけカスタム選択状態にする方法(選択時は背景色・文字色をカスタム設定する / 二つ以上選択した場合は一つ目の選択状態が解除される。)#swift4

sumthing

総合スコア13

Swift

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

0グッド

1クリップ

投稿2019/03/28 08:58

前提・実現したいこと

swift4を用い、tableviewの表示を行なっています。
cell選択時の動作として、
・背景色と文字色を変える(デフォルトのグレーではなく自分で色をそれぞれ設定したい)
・他のセルが選択された時はすでに選択されているセルの色を選択前に戻す
ということをしたいと思っています。

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

一つのセルを選択後の文字色・背景色の変更は行えているのですが、
その状態で別セルを選択した時に、前に選択したセルの色の戻し方がわかりません。

該当のソースコード

swift

1 cell.backgroundColor = UIColor.clear 2 let selectionView = UIView() 3 selectionView.backgroundColor = UIColor(red: 218/255, green: 94/255, blue: 132/255, alpha: 1) 4 cell.selectedBackgroundView = selectionView

試したこと

背景色の変更については、調査・試行の上
上記コードが正常に動いている状況です。
また、文字色の変更については
didSelectRowAtにて上書きすることにより正常に行えています。
このdidselectRowAtに、選択状態が解除された時のプロパティなどはあるのでしょうか。
もしくは、上記以外で適切な手段がありましたらご教示いただければと思います。

補足情報(FW/ツールのバージョンなど)

swift4

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

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

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

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

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

t_obara

2019/03/28 09:11

その様な場合はまずドキュメントをご覧になり、使えそうなものがないか探すと良いです。XCodeで補完されるメソッドをご確認するでも良いと思います。 それらしいものが見つかったら、そのメソッドに含まれる特徴的なキーワードで検索してみると、所望のものか否かが判断できる場合があります。本当に使えるかはご自身で実装してみると良いでしょう。
sumthing

2019/03/29 02:04

一通り調査はしたのですが、別途ファイルを増やす手段しかなく、そちらはなるべく避けたかったため 上記コードにて背景色を変える要領で文字色を変えられる方法が無いかを知りたく投稿いたしました。 以後投稿の際はより詳細に記載するよう気をつけて参ります。 貴重なアドバイスありがとうございました!!
guest

回答1

0

ベストアンサー

UITableViewCellに、func setSelected(Bool, animated: Bool) があります。
これは、UITableViewで選択されたときや、選択が解除されたときに呼ばれるので、
これをoverride(extensionもしくは、UITableViewCellを継承した独自クラスの実装)して、
Bool == true の時は選択されたときのデザインに、
Bool == false の時は通常状態のデザインにする処理を実装すればできると思います。

投稿2019/03/28 09:19

dsuzuki

総合スコア1682

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

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

sumthing

2019/03/29 02:05

無事希望通り実装できました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問