Bagaimana cara mengubah warna UIImage saat mengetuk sel tampilan tabel?

Jadi saya terjebak dalam hal ini selama sekitar satu hari. Bagaimana cara mengubah warna warna UIImage saat mengetuk sel tampilan tabel? Jadi misalnya saya memiliki gambar hitam dan ketika saya mengetuk sel tampilan tabel, gambar itu berubah menjadi putih? Terima kasih!

Saya mencoba menggunakan kode ini tetapi saya tidak tahu cara menerapkannya dengan benar!

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

person MSmith    schedule 12.09.2016    source sumber
comment
Tahukah Anda cara membuat tableViewCell khusus?   -  person Sam_M    schedule 13.09.2016


Jawaban (1)


Sepertinya Anda memiliki bagian yang tepat tetapi tidak tahu harus menyebutnya di mana. Anda akan menetapkan gambar ke tampilan gambar dalam metode cellForRowAt: Anda.

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
}

Kemudian Anda akan mengubah warna tint tampilan gambar pada metode delegasi didSelect.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if let cell = tableView.cellForRow(at: indexPath) {
        cell.imageView.tintColor = newColor
    }
}
person keithbhunter    schedule 12.09.2016
comment
Terima kasih, saya akan mencobanya! Apakah saya perlu membuat outlet ke imageView agar kode yang saya tambahkan dapat berfungsi? Saya juga memiliki banyak sel dengan gambar berbeda! Bagaimana cara membuat masing-masingnya menjadi putih saat mengetuk sel? - person MSmith; 12.09.2016
comment
Jika Anda menggunakan kelas default UITableViewCell, maka Anda tidak perlu membuat outlet. Jika Anda menggunakan sel tampilan tabel kustom, maka ya, Anda perlu menghubungkan outlet untuk tampilan gambar sel kustom Anda. Jika sel Anda memiliki beberapa tampilan gambar, ubah warna rona pada setiap tampilan gambar dalam metode delegasi didSelect. - person keithbhunter; 12.09.2016
comment
Saya menggunakan tampilan tabel default. Bisakah Anda menambahkan kode untuk menunjukkan bagaimana Anda akan mengubahnya untuk setiap gambar? Juga kode yang Anda masukkan di cellForRow tidak berfungsi. Terima kasih - person MSmith; 12.09.2016