//// ViewController.swift// SwiftTableView//// Created by fe on 2017/3/3.// Copyright © 2017年 fe. All rights reserved.//import UIKit//swift遵守協議只需要跟在父類之后,使用逗號隔開class ViewController: UIViewController { //1.創建tableView對象 lazy var tableView : UITableView = UITableView() override func viewDidLoad() { super.viewDidLoad() //初始化UI setUpUI() } }/* extension ViewController {} 相當于OC中的類別,可以把一些方法放在里面,不能寫屬性 */// MARK:-初始化UI的擴展extension ViewController{ ///初始化UI func setUpUI() { //2設置tableView的frame tableView.frame = view.bounds //3.添加到控制器view view.addSubview(tableView) //4設置數據源 tableView.dataSource = self //5設置代理 tableView.delegate = self }}/* extension ViewController {} 相當于OC中的類別,可以把一些方法放在里面,不能寫屬性 */// MARK: tableView的數據源和代理的擴展 (這里相當于OC中的 #PRagma 書簽)extension ViewController :UITableViewDataSource,UITableViewDelegate{ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 20; } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { //1創建cell let identifier : String = "identifier" var cell = tableView.dequeueReusableCell(withIdentifier: identifier) if cell == nil { //在swift中使用枚舉類型方式 1>枚舉類型.具體類型 2> .具體類型 cell = UITableViewCell(style: UITableViewCellStyle.value1, reuseIdentifier: identifier) } //2設置數據 cell?.textLabel?.text = "swiftTableView" cell?.detailTextLabel?.text = "/(indexPath.row)" //3返回cell return cell!//在這個地方返回的cell一定不為nil,可以強制解包 } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { MyLog(message: indexPath.row) }}
新聞熱點
疑難解答