2017-10-24 12 views
2

UITableViewCellでカスタムラベルを追加しました。その背景色は赤で、フォントは白です。任意のセルを選択すると、選択したセルのラベルの背景色がグレーに変わりました。参考のためUITableViewCellを選択したときにラベルの背景色が変更されました

、私は参考のためのコード

let lblUnreadCount = cell?.viewWithTag(3) as! UILabel 
let size:CGFloat = 20.0 
lblUnreadCount.bounds = CGRect(x: 0.0, y: 0.0, width: 28.0, height: 20.0) 
lblUnreadCount.layer.cornerRadius = size/2 
lblUnreadCount.layer.borderWidth = 1.0 
lblUnreadCount.layer.backgroundColor = UIColor.red.cgColor 
lblUnreadCount.layer.borderColor = UIColor.red.cgColor 

を追加していて、私はまた、スクリーンショットを追加しています。 enter image description here

+0

セットを選択しないでください – Sabarinathan

答えて

2

これは、ラベルの背景が変化しているのではなく、セル自体です。あなたはセルをdequeuedした後、あなたのcellForRow方法では、あなたがUIViewの背景を変更する必要が

UITableViewCell | |----- UIView | |-----UIImageView-> eg:Message icon |-----Title Label-> eg:Message |-----Count Label-> red background

たら、2.セルが選択されている。この

cell.selectionStyle = .none 
+0

しかし、これは選択されたセルを強調表示していません。私もそれが欲しい。 –

+0

選択すると赤に変更しますか? – Malik

+0

選択すると背景色が変更されます。 – Sabarinathan

0

1.set選択スタイルnoneを使用カラー(グレー)。

0

あなたのラベルの背景色をUITableViewCell内に設定します。上記のコードでは、ラベルのレイヤー背景色を設定します。

lblUnreadCount.backgroundColor = UIColor.red.cgColor

0

.noneにセルスタイルを設定すると、それが実際に選択されたときに、セルの色を強調しクリアようOPが望んでいないように思えます。

// Note that cell background color must be cleared **before** setting layer color 
lblUnreadCount.backgroundColor = UIColor.clear 
lblUnreadCount.layer.backgroundColor = UIColor.red.cgColor 

この方法であなたはのBGの色を保つことができるようになります:

私はそれはトリッキーなビットのように達成(TextLabelのBGの色をクリアし、その層へのBG色を設定)することが判明しましたセルが選択され強調表示されているときに、(セル内の)テキストラベルを変更しないでください。

関連する問題