一、到现在为止,我们解决了很多很多问题 1.现在基本的问题我们已经解决完了,解决完成之后,代码有点儿多,而且刚刚我们也说过,我在这儿返回cell的时候, 这个方法,代码是不是特别多,两屏幕的代码,关键是这段代码做了两件事情,一件事情是返回cell,还有一件事情是,下载图片, 这是问题,那现在怎么解决,我们要让每一个方法,做的事情稍微少一些,我们应该把不同功能的代码,放到不同的类中,这是封装的概念,那我们要对代码进行重构,这是我要做的一件事情, 代码怎么重构呢,那我要把不同的代码放到不同的位置上,我这里做不到特别完美的封装呢,我就给大家提示一下,应该做这么一件事情, 2.首先,我对上面这段代码进行一个重构, 运行一下, 这个界面,跟我们示例程序的界面,是有一点儿区别的,我们看一下示例程序, 看到区别没有,图片是不是比较大,后面这两个Label,中间的距离也要大一些,后边还有一个箭头儿,这块儿怎么做呢,刚刚我们是不是用系统提供的cell,系统提供的cell,能不能控制两个Label之间的距离,不能,怎么办呢,自定义cell, 并且,我们要把给cell内部控件儿赋值的过程,给它封装起来,我们这儿已经创建好一个类了,这块儿有一个HMAppInfoCell, 这个类,我们还没用,我们之前的时候,仅仅是拿它演示了一个layoutSubviews什么时候执行的问题, 3.下边,我们来自定义cell,我们先搭建出来那么一种样子,有图片,有imageView,有两个Label,怎么去创建,xib吗,不用创建xib了吧,我们在tableViewController里边,有一个非常方便的东西,在这个cell里边,有一个Prototype Cell, 我们这个Prototype Cell,我们可以改一下,把这个cell改成什么,不是静态的,静是不动,我们要的是动态的,能变的cell,动态原型cell,Content这里,设置成Dynamic Prototypes, 什么是动态原型cell,就是一个模板,就相当于一个xib一样,就是一个cell的模板,将来可以根据这个模板,创建很多很多不同的cell,我们在使用动态原型cell的时候,我们需要给它设置一个可重用标识,它跟xib一样,只是我不用创建xib了,我们可以把这个区域想象成一个xib, 我们首先,要给这个cell绑定自定义类,我们这个类已经创建好了,是HMAppInfoCell, 完了之后,还有一件事情,还要设置可重用id,Identifier, 这个可重用标识,跟我们的代码可重用标识是一样的,我那个标识叫做appInfo, OK,准备工作到这里就做好了,我们就把它想象成,你就是一个xib,如果你是一个xib的话,我们可以直接往上拖东西, 选中这个cell,右边这个Style应该是Custom,它默认就是Custom,只不过我们以前没用过它,Custom还可以选成别的,系统的这个cell, 选好之后,下边,我们这块儿要放图片, cell的高度,我之前设置成80了,现在我要放一个图片,这个图片肯定要在cell内部了,还要能够显示全,所以这个图片的大小,我改成&