当前位置: > > > Swift - 修改表格选中单元格(Cell)的样式(背景色,文字颜色)

Swift - 修改表格选中单元格(Cell)的样式(背景色,文字颜色)

使用 tableView 时,默认选中单元格的背景颜色是灰色的,如下图:


1,使用自定义的背景颜色
这时就需要自定义 UITableViewCell 选中时背景View,并设置其颜色
import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    
    var tableView:UITableView?
    
    override func loadView() {
        super.loadView()
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //创建表视图
        self.tableView = UITableView()
        self.tableView!.frame = CGRectMake(0, 0, self.view.frame.width,
            self.view.frame.height)
        self.tableView!.delegate = self
        self.tableView!.dataSource = self
        //创建一个重用的单元格
        self.tableView!.registerClass(UITableViewCell.self,
            forCellReuseIdentifier: "SwiftCell")
        self.view.addSubview(self.tableView!)
    }
    
    //在本例中,只有一个分区
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1;
    }
    
    //返回表格行数(也就是返回控件数)
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 20
    }
    
    //创建各单元显示内容(创建参数indexPath指定的单元)
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
        -> UITableViewCell
    {
        //为了提供表格显示性能,已创建完成的单元需重复使用
        let identify:String = "SwiftCell"
        //同一形式的单元格重复使用,在声明时已注册
        let cell = tableView.dequeueReusableCellWithIdentifier(identify,
            forIndexPath: indexPath) as UITableViewCell
        cell.textLabel?.text = "条目\(indexPath.row)"
        
        //选中背景修改成绿色
        cell.selectedBackgroundView = UIView()
        cell.selectedBackgroundView?.backgroundColor =
            UIColor(red: 135/255, green: 191/255, blue: 49/255, alpha: 1)
        return cell
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

2,改变选中单元格的文字颜色
通过 cell 内文本标签的 textColor highlightedTextColor 属性,可以分别设置文字默认颜色和选中颜色。
//默认文字颜色是黑色,选中项文字是白色
cell.textLabel?.textColor = UIColor.blackColor()
cell.textLabel?.highlightedTextColor = UIColor.whiteColor()
评论0