之前使用OC,开始学习swift,语法是有点不习惯,tableview的简单用法,记录下
class FirstTableViewController: UIViewController {
private var tableView : UITableView!
private var dataArray : [String]!
private var REUSERABLECELL : String = "REUSERABLECELL"
private var isOn : Bool = true{
willSet{
print("isOne willSet")
}
didSet{ //当isOn被设置的时候,会执行这个方法
print("isOne didSet")
}
}
override func viewDidLoad() {
super.viewDidLoad()
dataArray = ["syx","liujin"]
self.tableView = UITableView(frame: self.view.frame);
tableView.register(UITableViewCell.self, forCellReuseIdentifier: REUSERABLECELL)
tableView.dataSource = self;
tableView.delegate = self;
self.view.addSubview(tableView);
self.isOn = false;
self.isOn = true;
}
override func viewDidLayoutSubviews() {
print("viewDidLayoutSubviews");
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
extension FirstTableViewController : UITableViewDataSource{
func numberOfSections(in tableView: UITableView) -> Int {
return 1;
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return (dataArray?.count)!;
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: REUSERABLECELL)
cell?.textLabel?.text = self.dataArray?[indexPath.row]
return cell!;
}
}
extension FirstTableViewController : UITableViewDelegate{
}
程序输出结果:
isOne willSet
isOne didSet
isOne willSet
isOne didSet
viewDidLayoutSubviews
1 :willSet didSet 有点类似于OC里面的观察者,注册了一个观察者,当isOn的属性被设置的时候,就会调用这两个方法
extension:在现有的类的基础上,2:extension:在现有的类的基础上,加上新的方法.这里的意思是让vc遵循tableview的delegate和datasource.