iOS应用开发复盘(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liyux4869/article/details/82925007

上一节我们介绍了iOS工程的搭建和真机调试的方法。这一节开始介绍列表界面的开发,列表是app里面最常用的控件,没有之一。

首先我们在工程里创建界面控制器,继承UIViewController如下图所示,UIViewController是iOS界面控制器的基类,封装了一个UIView作为界面显示,同时还封装了很多手势响应事件和横竖屏响应事件,但是它实际上还是一个controller,界面显示都是由UIView负责的,这一点会在下一节具体讲解。

我们在TableController.m文件里面创建上图所示代码,这是一个特殊的类别,是一个类的私有类别,外部无法访问,专门用来定义内部对象和实现各种代理用的。这里我们定义了UITableView对象和一个数组作为数据源,同时指定需要实现的UITableview必需的两个代理UITableviewDatasource和UITableviewDelegate。

我们重点看一下UITableviewDatasource,这里有两个方法被声明为required,是必须要实现的方法。一个指定列表的个数,一个生成具体的列表项视图对象。

我们同时也实现UITableviewDelegate里面的点击列表项的响应方法。

如上图所示,这里小编我使用视图创建和布局分离的方法,先说明一下iOS当中UIViewController的创建流程,首先在视图对象被创建的时候也就是执行init等方法之后viewDidLoad方法就会被调用,然后在UIViewController渲染到界面上的时候才会调用ViewWillAppear方法,所以我在viewDidLoad中创建了UITableView对象,把它添加到self.view当中,然后当界面渲染的时候再获取界面的大小对tableview的大小进行修改,这样在最外层界面发生改变时就能自动改变子类的大小(横竖屏切换,以及导航栏标题高度改变时都能修改大小),也不需要提前减去导航栏高度,下一节会再举个栗子说明创建布局分离的好处。

这里使用了UITableview对象,要说明一下UITableview创建的时候要注册单元格的对象,如上图所示,这是因为UITableviewCell有复用机制,当tableview显示的时候会生成若干个cell对象填充界面,而当列表滑动的时候超出屏幕的cell对象会被重新利用,填充新的内容再次显示而不是重新生成cell对象,这样就能高效的使用内存了,提高用户体验。如下图所示,cell都是通过一个标记identifier来管理的,先根据identifier找到空闲的cell,如果没有空闲cell再创建新的cell。

而在点击事件中我们就跳转到物理模拟界面了。列表页小编就介绍到这里,来看看实际效果,下一节中我们就会具体介绍物理模拟界面的开发。

猜你喜欢

转载自blog.csdn.net/liyux4869/article/details/82925007