·UITableView其它一些東西在這里不多講牡整,這里的就是講解UITableView的創(chuàng)建丑念。
UITableView的創(chuàng)建有三種方法分別是純代碼岩四、XIB礼殊、storyboard。下面就是創(chuàng)建的代碼
1.純代碼的創(chuàng)建
首先實(shí)例化UITableView(我所有的創(chuàng)建都是在UIViewController類中完成的)
lettableView =UITableView(frame:UIScreen.mainScreen().bounds, style:UITableViewStyle.Plain)
tableView.delegate=self
tableView.dataSource=self
self.view.addSubview(tableView)
必要的幾個(gè)代理方法
func numberOfSectionsInTableView(tableView:UITableView) ->Int{
return1
}
func tableView(tableView:UITableView, numberOfRowsInSection section:Int) ->Int{
return3
}
這一塊是自定義cell
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) ->UITableViewCell{
letcell=TYCodeTableViewCell.codeTableViewCell(tableView)as!TYCodeTableViewCell
returncell
}
下面是具體用純代碼創(chuàng)建cell
class TYCodeTableViewCell:UITableViewCell{
class func codeTableViewCell(tableView :UITableView) ->AnyObject{
let ID ="cell"http://設(shè)置標(biāo)記
var cell = tableView.dequeueReusableCellWithIdentifier(ID)//從緩存中提取
if cell ==nil {//沒有就創(chuàng)建cell
cell =TYCodeTableViewCell(style:UITableViewCellStyle.Default, reuseIdentifier: ID)
//在這里創(chuàng)建cell中的其它控件茸时,是會(huì)出現(xiàn)亂序贡定,你的邏輯最好不要在這里實(shí)現(xiàn)
}
return cell!//返回cell
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected:Bool, animated:Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
以上就是純代碼的創(chuàng)建
XIB的創(chuàng)建
因?yàn)槲覀兪褂肵IB所以它的創(chuàng)建與有點(diǎn)不一樣
lettableView =UITableView(frame:UIScreen.mainScreen().bounds, style:UITableViewStyle.Plain)
tableView.delegate=self
tableView.dataSource=self
self.view.addSubview(tableView)
//這里是注冊(cè)XIB類似純代碼中的創(chuàng)建cell
letnib =UINib(nibName:"TYXIBTableViewCell", bundle:nil)
tableView.registerNib(nib, forCellReuseIdentifier:id)
因?yàn)樯厦嬉呀?jīng)創(chuàng)建所以下面我只要到緩存中提取就可以了,這里也是自定義cell 為TYXIBTableViewCell
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) ->UITableViewCell{
let cell :TYXIBTableViewCell= (tableView.dequeueReusableCellWithIdentifier(id, forIndexPath: indexPath)) as!TYXIBTableViewCell
returncell
}
使用storyboard創(chuàng)建就更加簡(jiǎn)單了
在這里創(chuàng)建了TableView和cell代碼中只要從緩存中提取就可以了
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) ->UITableViewCell{
letcell :TYStoryboardTableViewCell= tableView.dequeueReusableCellWithIdentifier("TYStoryboardTableViewCell", forIndexPath: indexPath) as! TYStoryboardTableViewCell
returncell
}
上面就是從緩存中提取cell
下面是具體的代碼
https://github.com/tangyi1234/CellTypeTableView.git