2016-07-20 51 views
4

いくつかのセルで1つのコレクションビューがあります。私のセルの中には、国名のリストを表示するラベルが1つあります。各セルのラベルをクリックするたびに、コレクションビューの下のテーブルビューにデータが表示されます。コレクションビューのセルでラベルの色を変更する方法

いずれかのセルラベルを押すと、そのラベルのテキストを赤にする必要があります。他のラベル名は黒でなければなりません。

どうすればよいですか?私は以下のコードを試しましたが、そのセルでラベル名を選択すると、すべてのセルのラベルが赤くなります。

これを修正するにはどうすればよいですか?

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 


     if let cell = collectionView1.cellForItemAtIndexPath(indexPath) { 

      var label = cell.viewWithTag(100) as? UILabel 


      label!.textColor = UIColor.redColor() 

     } 
    } 

答えて

2

セルを更新する必要があるため、ラベルが更新されません。だから私はあなたを提供することができる最高のソリューション - あなたのカスタムセルのクラスにsetSelected方法で

をお使いのラベルの色を変更編集:


override var setSelected(selected: bool) { 
    if (selected) { 
     self.youLabel!.textColor = UIColor.redColor() 
    } else { 
     self.youLabel!.textColor = UIColor.blackColor() 
} 

これは、カスタムクラス内の関数の一例です。申し訳ありませんが、間違いがある場合 - iPhoneから回答

+0

私はあなたが私は[OK]を私のカスタムセルクラス – mack

+0

にしなければならないべきか.That私にいくつかのコード例を与えるiOS.Canに新しいです。それはかなり簡単です。 –

+0

はいこの行の 'bool'の下でエラーが発生します' func setSelected(選択:bool) ' – mack

-1

私はあなたのコードで作成した、それは私に働いています。しかし、私は思う、それはカスタムコレクションビューのセルを作成する方が良いです。

demo project

+0

同じことを書いたもの私の質問ではポストコードknow.Likeだけあなたの解決策もそこにあるように。しかし、私が必要とするのは、赤の色に変えなければならないラベルを押すときです。他のラベルを選択すると、既存の選択ラベルは黒に変わるはずです選択されたセルラベルのみが赤色を表示することを示します。 – mack

+0

funcコレクションビュー(collectionView:UICollectionView、didDeselectItemAtIndexPath indexPath:NSIndexPath){ let cell = collectionView.cellForItemAtIndexPath(indexPath) let label = cell!.viewWithTag(100)as? UILabel label?.textColor = UIColor.blackColor() } –

+0

だから、コレクションビューでラベルの色を元に戻す必要があると思います。これを助けることを願っています。 :) –

関連する問題