加载中…

加载中...

iOS swift 笔记,利用autoLayout开发自定义UITableView

转载 2015-05-29 08:36:58

这一次,我要编写一个评论栏的代码,使用的控件是UITableView。要知道,一个评论栏最大的问题是,我们不知道用户会写多少字在上面,所以我们要给每个cell分配动态的高度,这一步可以计算得到,那么得到了cell的高度我们还需要那个label填满整个空间,这个时候autoLayout是最好的选择。

但是这次我还考虑了一个问题cell的重用,一般来说同样cell可能会在不同界面都用上,那么我们不可能每次再编写一遍这个cell。为了可以重复使用这个cell,我们使用一个古老的东东XIB来编写一个cell。

​首先,新建一个subclass,继承与UITableViewCell,但是记得点开XIB

之后我们在XIB文件中添加一个imageView,两个Label,并且做好连接到我们创建的swift文件中,之后给那三个控件添加autoLayout。

其中autoLayout我们有一点需要注意就是第二label的长度,因为我们需要让他是动态根据cell的高度来变化高度的,所以这个label的高度不能定死,只需要保证他和cell的上方和下方保证固定的距离即可。

之后在主界面初始化一个TableView,这里有一点需要注意,我们需要将我们创建的XIB的cell连接到这个tableView中,就需要用到registerNib函数。同时不要忘了把UITableViewDelegate和UITableViewDataSource加入到函数继承。

​初始化之后,我们依次编写numberOfRowsInSection,cellForRowAtIndexPath这两个require函数,之后在调用heightForRowAtIndexPath这个option函数,这样我们就可以对每个cell修改他的高度了。至于这里我加了一个35,是因为除了该label自己以外上面有一个label高度为20,与label的间距是5,上下间距各为5,所以总数是35.


在这里我要使用Label一个新的特性,叫做attributeText,这个特性允许我们对一段文字中的任意字段进行编辑,主要是用来改字的颜色的。加入以下代码

最后运行一下,姓名和日期用不同的颜色分开。是不是原来越像苹果的原生应用了。

github源码:https://github.com/blesssecret/iOS-swift-developing/tree/master/AutoLayoutXibTableView



阅读(0) 评论(0) 收藏(0) 转载(0) 举报/Report

评论

重要提示:警惕虚假中奖信息
0条评论展开
相关阅读
加载中,请稍后
blesssecret
  • 博客等级:
  • 博客积分:0
  • 博客访问:9,674
  • 关注人气:0
  • 荣誉徽章:

相关博文

推荐博文

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有