swift纯代码实现UITableview总结一

在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!
    }


效果图如下所示

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...