UItableVIEw
就是表格,但是只有行没有列
创建格式有Plain和Group
而实现函数则有两个代理
delegate, 处理tablevIEw中的逻辑关系
dataSource ,资源数据,用来插入删除等功能
1.创建
设置全局变量
var _MytableVIEw : UItableVIEw? //全局的tablevIEw var leftBtn:UIbutton? //左边按钮,用于删除等 *** 作 var rightbuttonItem:UIbarbuttonItem? //右边按钮,用于添加 var items = ["武汉","上海","北京","深圳","广州","重庆","香港","台海","天津"]创建tableVIEw
/*重用机制 当表行滑出屏幕时讲其UItableVIEwCell放入到重用队列中 当表行重新划入屏幕时,则将其UItableVIEwCell从重用队列中取出来 由此减少每次对生成和施放内存的 *** 作 */ func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell{ let cellID = "my cellID" //tablevIEw行的标志 var cell: UItableVIEwCell? = tableVIEw.dequeueReusableCellWithIDentifIEr(cellID,forIndexPath: indexPath)//获取行标志 if (cell == nil){ cell = UItableVIEwCell(style:.Default,reuseIDentifIEr: cellID) //空的话则重新创建一个,cellID表示新创建的UItableVIEwCell } cell!.textLabel?.text = self.items[indexPath.row] cell!.imageVIEw?.image = UIImage(named: "green.png") return cell! //返回 }重写初始化函数
//父类的初始化函数 overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() let Rc:CGRect = self.vIEw.bounds _MytableVIEw = UItableVIEw(frame: Rc,style:UItableVIEwStyle.Plain) _MytableVIEw!.delegate = self _MytableVIEw!.dataSource = self //setupleftbarbuttonItem() setupRightbarbuttonItem() self.vIEw.addSubvIEw(_MytableVIEw!) }
设置表格中的数量
//返回表中的数量 func tableVIEw(tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int{ return items.count }
//设置点击事件 func tableVIEw(tableVIEw: UItableVIEw,dIDSelectRowAtIndexPath indexPath: NSIndexPath){ //let alert: UIAlertController = UIAlertController(Title: "提示",message: "你选择的是\(self.dataArr[indexPath.row])",preferredStyle: UIAlertControllerStyle.Alert) //let okAction = UIAlertAction(Title: "好的",style: UIAlertActionStyle.Default,handler: nil) // alert.addAction(okAction) // self.presentVIEwController(alert,animated: true,completion: nil) }
添加右边按钮和左边按钮以及其事件
//加左边按钮 func setupleftbarbuttonItem() { leftBtn = UIbutton(type: UIbuttonType.Custom ) self.leftBtn!.frame = CGRectMake(0,50,40) self.leftBtn?.setTitlecolor(UIcolor.redcolor(),forState: UIControlState.normal) self.leftBtn?.setTitle("Edit",forState: UIControlState.normal) self.leftBtn!.tag = 100 self.leftBtn?.addTarget(self,action: "leftbarbuttonItemClicked",forControlEvents: UIControlEvents.touchUpInsIDe) let barbuttonItem = UIbarbuttonItem(customVIEw: self.leftBtn!) self.navigationItem.leftbarbuttonItem = barbuttonItem } //左边按钮事件 func leftbarbuttonItemClicked() { print("leftbarbutton") if (self.leftBtn!.tag == 100) { self._MytableVIEw?.setEditing(true,animated: true) self.leftBtn!.tag = 200 self.leftBtn?.setTitle("Done",forState: UIControlState.normal) //将增加按钮设置不能用 self.rightbuttonItem!.enabled=false } else { //恢复增加按钮 self.rightbuttonItem!.enabled=true self._MytableVIEw?.setEditing(false,animated: true) self.leftBtn!.tag = 100 self.leftBtn?.setTitle("Edit",forState: UIControlState.normal) } } //加右边按钮 func setupRightbarbuttonItem() { self.rightbuttonItem = UIbarbuttonItem(Title: "Add",style: UIbarbuttonItemStyle.Plain,target: self,action: "rightbarbuttonItemClicked") self.navigationItem.rightbarbuttonItem = self.rightbuttonItem } //增加事件 func rightbarbuttonItemClicked() { print("rightbarbutton") let row = self.items.count let indexPath = NSIndexPath(forRow:row,inSection:0) //self.items.append("杭州") self._MytableVIEw?.insertRowsAtIndexPaths([indexPath],withRowAnimation: UItableVIEwRowAnimation.left) }
设置分组的tableVIEw
初始化时将风格设置为Group,并且在设置cell名称是应该使用多个数组
<pre name="code" ><p ><span >var</span><span > items = [[</span><span >"</span><span >武汉</span><span >"</span><span >,</span><span >"</span><span >上海</span><span >"</span><span >,</span><span >"</span><span >北京</span><span >"</span><span >],[</span><span >"</span><span >深圳</span><span >"</span><span >,</span><span >"</span><span >广州</span><span >"</span><span >,</span><span >"</span><span >重庆</span><span >"</span><span >],[</span><span >"</span><span >香港</span><span >"</span><span >,</span><span >"</span><span >台海</span><span >"</span><span >,</span><span >"</span><span >天津</span><span >"</span><span >]]</span></p>
self.tableVIEw=UItableVIEw(frame:self.vIEw.frame,style:UItableVIEwStyle.Grouped)
设置table的数量和每个table的cell数量
//总行数 func tableVIEw(tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int{ return self.items[section].count - 1 } func numberOfSectionsIntableVIEw(tableVIEw: UItableVIEw) -> Int { return items.count }
func tableVIEw(tableVIEw: UItableVIEw,TitleForheaderInSection section: Int) -> String?{ return items[section][0] }总结
以上是内存溢出为你收集整理的Swift 爬行篇 UITableView全部内容,希望文章能够帮你解决Swift 爬行篇 UITableView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)