swift纯代码实现UITableview总结一

前端之家收集整理的这篇文章主要介绍了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!
    }


效果图如下所示

猜你在找的Swift相关文章