在swift中没有了宏定义这个概念,所以在获取屏幕宽高时,可以设置其为常量
let SRC_WIDTH =UIScreen.mainScreen().bounds.width
let SRC_HEIGHT =UIScreen.mainScreen().bounds.height
swfit创建UITableView和OC中差不多,主要是语法发生了改变的,还有一点就是拆解包问题,不过一般编译器会给出提示
你要实现UiTableView,肯定就少不了要实现它的相关代理方法,在swift中不需要尖括号,只需要在继承的类后面用逗号隔开就可以来,如下所示:
class TableViewController:UIViewController,UITableViewDataSource,UITableViewDelegate{},这是系统会报错,不用管,因为你还没有实现它的代理和协议的;
声明UITableView
var tableView: UITableView?
在初始化UITableView,如下:
/** * 创建UITableView */ func tableViewTest() -> UITableView{ if tableView == nil{ tableView = UITableView(frame: CGRectMake(0,SRC_WIDTH,SRC_HEIGHT),style: UITableViewStyle.Plain) tableView?.delegate = self tableView?.dataSource = self tableView?.showsHorizontalScrollIndicator = false tableView?.showsVerticalScrollIndicator = false tableView?.bounces = false tableView?.tableFooterView = UIView(frame: CGRectMake(0,0))<span style="white-space:pre"> </span>//去除多余的下划线 } return tableView! }
UITableView已经创建好了,接下来的就是要实现它的数据源方法的:
分别是:
//返回cell的显示的数据
func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath) ->UITableViewCell{}
//返回当前的Section中row行数
func tableView(tableView:UITableView,numberOfRowsInSection section:Int) -> Int{}
//返回当前几个Section
func numberOfSectionsInTableView(tableView:UITableView) ->Int{}
//选中时方法
func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath){}
func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell = tableView.dequeueReusableCellWithIdentifier("CELL") if cell == nil { cell = UITableViewCell(style: .Default,reuseIdentifier: "CELL") } cell!.selectionStyle = UITableViewCellSelectionStyle.None cell!.textLabel?.text = items![indexPath.row] as? String return cell! }