Swift 爬行篇 UITableView

Swift 爬行篇 UITableView,第1张

概述UITableView    就是表格,但是只有行没有列    创建格式有Plain和Group    而实现函数则有两个代理    delegate , 处理tableview中的逻辑关系    dataSource ,资源数据,用来插入删除等功能 1.创建 设置全局变量 var _MyTableView : UITableView? //全局的Tableview var

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    }


将每个数组中的第一个元素作为Title
 func tableVIEw(tableVIEw: UItableVIEw,TitleForheaderInSection section: Int) -> String?{        return items[section][0]    }
总结

以上是内存溢出为你收集整理的Swift 爬行篇 UITableView全部内容,希望文章能够帮你解决Swift 爬行篇 UITableView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1085482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存