前面我们知道了 UITableView 是怎么用得, 现在我们继续讲解和 UITableView密不可分的另一个空间 UITableViewCell.
1.UITableViewCell常用属性
UITableViewCell 显示的样式
enum UITableViewCellStyle : Int {
case Default
case Value1
case Value2
case Subtitle
}
UITableViewCell 选中的样式
enum UITableViewCellSelectionStyle : Int {
case None
case Blue
case Gray
@availability(iOS, introduced=7.0)
case Default
}
UITableViewCell 编辑的样式
enum UITableViewCellEditingStyle : Int {
case None
case Delete
case Insert
}
UITableViewCell 辅助按钮的样式
enum UITableViewCellAccessoryType : Int {
case None
case DisclosureIndicator
case DetailDisclosureButton
case Checkmark
@availability(iOS, introduced=7.0)
case DetailButton
}
UITableViewCell 常用属性
init(style: UITableViewCellStyle, reuseIdentifier: String?)
var imageView: UIImageView? { get }
var textLabel: UILabel? { get }
var detailTextLabel: UILabel? { get }
var contentView: UIView { get }
var backgroundView: UIView?
var selectedBackgroundView: UIView!
var multipleSelectionBackgroundView: UIView?
var selectionStyle: UITableViewCellSelectionStyle
var editingStyle: UITableViewCellEditingStyle { get }
var editing: Bool
var accessoryType: UITableViewCellAccessoryType
2.代码演示
由于 TableViewCell 是不可以单独存在的, 所以必须得依赖于 UITableView
遵守 TableView 代理协议以及数据源协议
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
}
自定义 TableVIew
func myTableView() {
var tableView = UITableView(frame: self.view.frame, style: UITableViewStyle.Plain)
tableView.dataSource = self
tableView.delegate = self
self.view.addSubview(tableView)
}
实现数据源方法
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
自定义 UITableViewCell
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "cell")
cell.textLabel!.text = "我是 Cell"
cell.detailTextLabel?.text = "Cell"
cell.imageView?.image = UIImage(named: "image_black.jpg")
cell.setEditing(true, animated: true)
cell.backgroundColor = UIColor.greenColor()
cell.editingAccessoryType = UITableViewCellAccessoryType.DisclosureIndicator
cell.selectionStyle = UITableViewCellSelectionStyle.Default
cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, 20)
cell.selectedBackgroundView = nil
cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator
return cell
}
开启 TableViewCell 的编辑模式
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
}
3.最终效果
PS: UITableViewCell 是继承于 UIView, 所以 UIView 里面的属性以及方法都是可以使用的.
好了, 这次我们就讲到这里, 下次我们继续~~
请发表评论