从头开始swift2.0 仿乐乐医项目(二)列表的填充

上一节我们已经成功搭建好一个主流框架,为了演示更加真实,并请自行将ItemBar上的文字、图标更换为自定义的内容,我这里是仿写乐乐医APP,将4个item分别设置为首页、咨询、快问、我,如图所示:


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第1张图片

到目前为止我们甚至连一行代码都没有写过,iOS的这个Xcode确实是非常方便的。现在我们来将首页的医生列表展示出来。

新建一个TableViewCell,

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第2张图片


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第3张图片

命名为DoctorCell,把create XIB勾上,语言还是选择Swift,创建完成后看到项目中多了两个文件,一个是cell,一个是xib,并且已经自动关联上了。

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第4张图片

将cell的视图拖到高为100的大小,并向其放入一个UIImageView,设置为60x60,并添加一个演示图片,最后添加约束。

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第5张图片

添加的约束都可以在右边看到


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第6张图片

再拖入一个UILabel,显示为医生姓名,并添加约束,距头像右边68,与头像顶部对齐

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第7张图片

然后依次添加职位、公司、科系、擅长

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第8张图片

布局完成,然后我们关联到cell.swift中。点击箭头所指处,如果打开的不是DoctorCell的话,按住option键并点击左边的DoctorCell.swift

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第9张图片

按住control键并连线,给一会儿会在编码中使用到的控件都申明一个变量


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第10张图片


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第11张图片

连线完成后DoctorCell中至少有以下控件:

@IBOutlet weak var ivHead: UIImageView!

@IBOutlet weak var lblName: UILabel!

@IBOutlet weak var lblPosition: UILabel!

@IBOutlet weak var lblHospital: UILabel!

@IBOutlet weak var lblGood: UILabel!

然后在awakeFromNib方法中,将ivHead设置为圆形

ivHead.layer.cornerRadius = 30//ivHead.frame.size.height/2

ivHead.layer.borderWidth = 0.5

ivHead.layer.borderColor = UIColor.lightGrayColor().CGColor

ivHead.layer.masksToBounds = true

OK,Cell这边我们暂时可以不动了,现在我们新建一个UITableViewController


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第12张图片

回到StoryBoard,选中首页的Controller,将class更改为刚创建的MainViewController

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第13张图片

进入MainViewController.swift,我们开始编码啦!终于要开始编码了。。。

因为我们是自定义的Cell,所以tableView需要注册一下

tableView.registerNib(UINib(nibName:"DoctorCell", bundle:nil), forCellReuseIdentifier:"cell")

然后只需要修改这三个地方,我们运行起来看看效果

numberOfSectionsInTableView 列表分为几部分,通常都是1

numberOfRowsInSection 一共有多少条数据

cellForRowAtIndexPath 每行cell显示的样式,类似于android中的getView

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第14张图片

我们运行后看到数据是出来了,不过都挤到一起去了

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第15张图片

重写一个heightForRowAtIndexPath的方法,返回100的高度(之前我们在xib中就是写的100)

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

return 100

}

再次运行,非常完美的显示出来了

从头开始swift2.0 仿乐乐医项目(二)列表的填充_第16张图片

我们修改一下文字看看,在cellForRowAtIndexPath方法中

let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! DoctorCell

cell.lblName.text = "严律南"

cell.lblPosition.text = "主任医师"

cell.lblHospital.text = "四川大学华西医院 肝胆胰外科"

cell.lblGood.text = "肝脏移植,肝癌,肝硬化等。"

return cell

分别在4s/5s/6s上运行


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第17张图片


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第18张图片


从头开始swift2.0 仿乐乐医项目(二)列表的填充_第19张图片

OK,显示都很正常,说明我们约束是正确的,好了第二节《列表的填充》先到这里,谢谢观看。

你可能感兴趣的:(从头开始swift2.0 仿乐乐医项目(二)列表的填充)