2016-09-12 15 views
1

私は1日かそれ以上の間これに固執しています。どのように私はテーブルビューのセルをタップするときにUIImageの色の色を変更するのですか?たとえば、私は黒い画像を持っていて、テーブルビューのセルをタップするとその画像が白く変わります。ありがとうございました!テーブルビューのセルをタップすると、UIImageの色を変更するにはどうすればよいですか?

このコードを使ってみましたが、正しく実装する方法がわかりません。

let theImageView = UIImageView(image: UIImage(named:"foo")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)) 
theImageView.tintColor = UIColor.redColor() 
+0

カスタムtableViewCellを作成する方法は知っていますか? –

答えて

0

あなたは正しい作品を持っているようですが、どこに電話するかはわかりません。画像はcellForRowAt:メソッドの画像ビューに割り当てます。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifier, for: indexPath) 
    cell.imageView.image = UIImage(named:"foo")!.withRenderingMode(.alwaysTemplate) 
    return cell 
} 

その後、didSelectデリゲートメソッドで画像表示の色合いの色を変更します。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    if let cell = tableView.cellForRow(at: indexPath) { 
     cell.imageView.tintColor = newColor 
    } 
} 
+0

ありがとう、私はこれを試してみましょう!追加したコードを追加するために、imageViewのコンセントを作成する必要がありますか?私はまた、異なる画像を持つ複数の細胞を持っています!どのように私はそれらの各1つをセルをタップすると白くなるようになるだろうか? – MSmith

+0

デフォルトの 'UITableViewCell'クラスを使用している場合は、コンセントを作る必要はありません。カスタムテーブルビューセルを使用している場合は、カスタムセルのイメージビュー用のアウトレットを接続する必要があります。セルに複数のイメージビューがある場合は、 'didSelect'デリゲートメソッドで各イメージビューの色合いを変更します。 – keithbhunter

+0

私はデフォルトのテーブルビューを使用しています。画像ごとにどのように変更するかを示すコードを追加できますか?また、cellForRowに入力したコードは機能しません。ありがとうございました – MSmith

関連する問題