在iOS中为单个标记单元格添加颜色

时间:2016-03-23 16:53:53

标签: ios swift uitableview

基本上我正在构建一个iOS应用程序,允许用户在整个月内跟踪他们的情绪,以便他们可以评估他们最紧张的时候以及他们最开心的时候。

每天,用户可以每天写一个关于日期和颜色代码的信息块,以便在列表视图中他们可以快速查看月份的进展情况(例如,如果该月的大部分时间是红色,那么它表示他们有一个糟糕的月份。)

我使用绿色,琥珀色和红色来识别用户的心情。但是我无法使每个单独的单元格成为用户选择的颜色。我给每个颜色单元格一个标签,以识别用户的选择。我只是在实际调用该功能以允许它显示在屏幕上时遇到麻烦。

这是我的列表视图控制器中的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell")!

    let post = posts[indexPath.row]

    let cellTitle = cell.viewWithTag(1) as! UILabel
    cellTitle.text = post.title

    let cellText = cell.viewWithTag(2) as! UILabel
    cellText.text = post.text

    return cell
}

我知道我需要调用这些函数,但是我该怎么做?

2 个答案:

答案 0 :(得分:0)

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    cell.contentView.backgroundColor = UIColor.greenColor() // or any other color depending on the tag
}

答案 1 :(得分:0)

如果我理解正确,您想要修改表格视图中特定单元格的颜色。最简单的解决方案是修改函数中的单元格,这仍然是表格视图所必需的。

#opacity {
width:550px;
position:fixed;
height:100vh;
background: linear-gradient(to right, black, rgba(0, 0, 0, 0));
opacity: 1;
filter: Alpha(opacity=100);
z-index:1;
}

使用indexPath指定要编辑的单元格后,使用func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { } 更改背景。