博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TableViewCell中自定义XIB的使用
阅读量:4310 次
发布时间:2019-06-06

本文共 1121 字,大约阅读时间需要 3 分钟。

默认的表格样式通常不能满足正常的开发需要

 

解决方法 —— 自定义Cell

1> XIB(团购)

2> 纯代码(微博)

3> StoryBoard

 

XIB的定义步骤

-----------------------------------------------

1> 新建HMTgCell.xib

2> 拽一个需要自定义的控件,摆放其他子控件

3> 新建一个类

* 类名要与XIB的名字保持一致

* 继承自的子类要与XIB中的根节点的类型一致

4> 要连线之前,需要将XIB的根节点类名修改为刚刚新建的类名

5> 连线

6> XIB的属性面板,指定可重用标示符

 

代码创建Cell的步骤

-----------------------------------------------

1> 创建自定义Cell,继承自UITableViewCell

2> 根据需求,确定控件,并定义属性

3> getter方法完成控件的实例化,只创建并添加到contentView,不处理位置

4> 定义一个模型属性,通过setter方法,设置cell的显示

 

-----------------------------------------------

1. cellHeight 可以通过Status计算

解决方法:statusFrame模型,通过setter方法计算行高!

 

目前存在什么问题?

 

所有的单元格控件的计算都是重复的,而且每次表格滚动,设置内容都会重新计算。

 

解决这个问题:

statusFrame模型中,已经包含了status属性。

 

目前控制器中的数组保存的是status模型,将status模型替换为statusFrame模型{status,所有控件的位置},同样具有status模型

 

解决步骤

1. 将原有的status模型替换为statusFrame模型

*** 只是修改视图控制器中的代码,暂时不要动cell

 

*** 重构代码一定要小步来

 

问题:

cell中的控件的位置计算,依然是自己计算的。

解决办法:将cell中的status替换为statusFrame就可以拿到控件位置

 

 

-----------------------------------------------

代理模式:是父控件(视图控制器)监听子控件的事件,当子控件发生某些事情时,通知父控件工作!

 

* footView => controller 去工作,使用代理

* controller => footView 去工作,直接调用footView的方法即可

转载于:https://www.cnblogs.com/liqiantu/p/4413482.html

你可能感兴趣的文章
Java中关键词之this,super的使用
查看>>
人工智能暑期课程实践项目——智能家居控制(一)
查看>>
前端数据可视化插件(二)图谱
查看>>
kafka web端管理工具 kafka-manager【转发】
查看>>
获取控制台窗口句柄GetConsoleWindow
查看>>
Linux下Qt+CUDA调试并运行
查看>>
3.1.1;例3-1
查看>>
BZOJ4066: 简单题
查看>>
用户添加修改文件的操作
查看>>
C# 2015关键字
查看>>
PostgreSQL 数据库备份
查看>>
Binder
查看>>
RabbitMQ 在Linux环境中的默认位置
查看>>
Xcode找Library位置
查看>>
[P1121]环状最大两段子段和
查看>>
操作数据库出现InvalidOpertionException(内部连接致命错误)
查看>>
深入ASP.NET数据绑定(中)——数据双向绑定机理
查看>>
Toolbar使用
查看>>
mysql优化
查看>>
线程的几种创建方式
查看>>