Swift实现自定义TableViewCell

Swift实现自定义TableViewCell,第1张

概述虽然SDK里面自带的TableViewCell功能已经算强大了,但是很多时候,我们还是需要自定义的Cell来满足我们自己的需求。最近研究了下如何用Swift实现自定义的TableViewCell,记录一下吧。 1.  点击左下角的加号,添加新的类 XCode6.3 做了一些小改动,整合了一下,点击File,然后进行下一步: 2.  这里可以给你自己的TableViewCell修改名字,记得把"Al

虽然SDK里面自带的tableVIEwCell功能已经算强大了,但是很多时候,我们还是需要自定义的Cell来满足我们自己的需求。最近研究了下如何用Swift实现自定义的tableVIEwCell,记录一下吧。

1.

点击左下角的加号,添加新的类


XCode6.3 做了一些小改动,整合了一下,点击file,然后进行下一步:

2.


这里可以给你自己的tableVIEwCell修改名字,记得把"Also create XIB file"前面的复选框选中

3.

设计你自己想要的XIB样式。autoLayout很强大,多用一用就慢慢熟练了,可以省去很多代码量。


StationtableVIEwCell.swift文件基本不需要做大的变动

下面进行关键的步骤,在tableVIEw中添加进刚才我们自定义的tableVIEwCell

4.

StoryBoard中我们设置好承载tableVIEw的VIEwController(ProjectDetail...Controller.swift)的各项属性


注意这里把tablevIEw的style设置为Grouped,这样会在顶部出现一段空白,不过别担心,在接下来的代码里面我们会解决这个问题。

5.

VIEwDIDLoad

overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        // Do any additional setup after loading the vIEw.        let appdelegate = UIApplication.sharedApplication().delegate as! AppDelegate        appdelegate.projectDetail = self        self.tableVIEw.delegate = self        self.tableVIEw.dataSource = self        // remove the blank of the header of the table vIEw,mind the height must be more than 0        self.tableVIEw.tableheaderVIEw = UIVIEw(frame: CGRectMake(0,self.tableVIEw.frame.size.wIDth,0.01))        // register the custom tablevIEw cell        var nib = UINib(nibname: "StationtableVIEwCell",bundle: nil)        self.tableVIEw.registerNib(nib,forCellReuseIDentifIEr: "cell")    }

为了在Cell里面点击button可以实现页面的跳转,我在界面刚初始化的时候,在AppDelegate里面实例化了一个当前VIEwController的实例。如果对这个过程不了的,可以参见我的下一篇Blog,我会详细介绍一下如何实现。

接下来设置tablevIEw的delegate和datasource代理

然后就是刚才提到的,去除顶部的空白的代码了:

        self.tableVIEw.tableheaderVIEw = UIVIEw(frame: CGRectMake(0,0.01))
注意这里frame的height不能是0,如果是0是没有效果的,必须是比0大一点,但是我们把这个值设置的特别小,用肉眼看不出来,所以就变相达到了去除顶部空白的作用。所以我们设置成了0.01

接下来就是最关键的步骤了,初始化自定义的cell

        var nib = UINib(nibname: "StationtableVIEwCell",forCellReuseIDentifIEr: "cell")

6.

实现两个代理方法

    // #MARK: tablevIEw delegate    func tableVIEw(tableVIEw: UItableVIEw,heightForRowAtIndexPath indexPath: NSIndexPath) -> CGfloat {        return 80    }        func tableVIEw(tableVIEw: UItableVIEw,dIDSelectRowAtIndexPath indexPath: NSIndexPath) {        // To do     }        // #MARK: tablevIEw datasource    func numberOfSectionsIntableVIEw(tableVIEw: UItableVIEw) -> Int {        return 1    }        func tableVIEw(tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int {        return 5    }        func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell {        // all the custom cell into the tablevIEw         var cell = tableVIEw.dequeueReusableCellWithIDentifIEr("cell",forIndexPath: indexPath) as! StationtableVIEwCell        return cell    }

这几个代理方法就不多说了,很常用的。


到这里所有的步骤都完成了,运行一下程序,看看自定义的是什么样子的吧。

总结

以上是内存溢出为你收集整理的Swift实现自定义TableViewCell全部内容,希望文章能够帮你解决Swift实现自定义TableViewCell所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1088016.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存