我想将操作分配给UITableView单元格,以便在使用生成随机UIColor的函数轻触它时永久更改其颜色。
我是一个完全的初学者,找不到任何可以帮助我或我理解的东西。我不算100%的解决方案(这是受欢迎的),但如果我能得到任何帮助,可以让我跟上这个,我真的很感激。
下面是给定控制器的代码(在教程的帮助下编写):
import UIKit
class FruitsTableViewController: UITableViewController {
func getRandomColor() -> UIColor{
//Generate between 0 to 1
let red:CGFloat = CGFloat(drand48())
let green:CGFloat = CGFloat(drand48())
let blue:CGFloat = CGFloat(drand48())
return UIColor(red:red, green: green, blue: blue, alpha: 1.0)
}
// MARK: - Table View data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath)
cell.textLabel?.text = "Section \(indexPath.section) Row \(indexPath.row)"
return cell
}
override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return "Section \(section)"
}
}
答案 0 :(得分:1)
在下面写taxe
代表:
UITableView
当您重复使用单元格时,它可能会在滚动时再次改变颜色。
答案 1 :(得分:0)
使用此方法:
var isSelected : Bool! = false
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "LocationCell", for: indexPath)
cell.textLabel?.text = String(indexPath.row)
if isSelected == true
{
cell.backgroundColor = self.getRandomColor()
}
else
{
}
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
isSelected = true
tblView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
}