当前位置: 首页 > article >正文

【多线程-第三天-NSOperation的练习-tableView异步下载网络图片-重构代码-自定义cell Objective-C语言】

一、到现在为止,我们解决了很多很多问题

通知

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内部了,还要能够显示全,所以这个图片的大小,我改成&


http://www.kler.cn/a/565269.html

相关文章:

  • 怎么修改node_modules里的文件,怎么使用patch-package修改node_modules的文件,怎么修改第三方库原文件。
  • 解决 Ubuntu 24.04 虚拟机内无法ping 通 Hostname 的问题
  • 【C语言】握手问题(蓝桥杯)
  • C#中提供的多种集合类以及适用场景
  • 【鸿蒙Next】系统通知权限申请
  • 2025 IAST工具推荐 ︱IAST工具如何赋能企业开发安全?
  • Failed to start The PHP FastCGI Process Manager.
  • NGINX配置TCP负载均衡
  • Google sheet 复制excel内容自动合并单元格问题
  • 如何看到 git 上打 tag 的时间
  • 【缓冲区】数据库备份的衍生问题,缓冲区在哪里?JVMor操作系统?(二)
  • 【R语言】Kmeans算法
  • Java SE与Java EE
  • 【入门音视频】音视频基础知识
  • 后端之JPA(EntityGraph+JsonView)
  • 2025-2-27-4.10 动态规划(0-1 背包问题)
  • 算法教程:岛的最大面积
  • 内网穿透:打破网络限制的利器
  • 从零开始自主「起身站立」,上海AI Lab发布最新控制算法,机器人:起猛了
  • Linux部署ALAS并尝试调用MAA——非Docker方式