使用 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()