如何动态更改表视图单元格的颜色

时间:2016-12-18 11:46:47

标签: ios

如何动态更改表格视图单元格的颜色。 我希望实现截图中显示的内容,请建议。

enter image description here

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以使用UITableViewCell属性 backgroundColor 动态设置单元格颜色。

实施例 -

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell* cell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (!cell) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
    //cellColorHolder is UIColor object type array.
    cell.backgroundColor = (UIColor*)[cellColorHolder objectAtIndex:indexPath.row];
    return cell;
}

答案 1 :(得分:0)

很容易做到:

我在下面给出一个演示:

enter image description here

  1. 首先,将tableView拖到vc
  2. enter image description here

    1. 其次,设置tableView的委托和dataSource:
    2. enter image description here

      1. 第三步,在vc中设置data

        导入UIKit

        类ViewController:UIViewController,UITableViewDelegate,UITableViewDataSource {

        @IBOutlet weak var tableView:UITableView!

        var cellCount:Int! = 6

        var cus_color:UIColor = UIColor.init(红色:35 / 255.0,绿色:204 / 255.0,蓝色:216.0 / 255.0,alpha:1.0)

        override func viewDidLoad() {
            super.viewDidLoad()
        
            self.tableView.separatorStyle = .none
        }
        
        func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        
            return 100
        }
        
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return cellCount
        }
        
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
            let cell = UITableViewCell() // or your custom cell
        
            let perLevel:CGFloat = CGFloat(1.0) / CGFloat(self.cellCount)
        
            cell.backgroundColor = UIColor.init(red: 35 / 255.0, green: 204/255.0, blue: 216.0/255.0, alpha: (perLevel + CGFloat(indexPath.row) * perLevel))
        
            return cell
        }
        
        func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            self.tableView.deselectRow(at: indexPath, animated: false)
        }
        
        }