三大方式自定义cell

一、简略版

(一)通过Storyboard自定义Cell:

(1)控制器中:

(a)取出cell、模型数据,并完成模型赋值;

(2)自定义cell类中:

(a)重写model属性的set 方法给子控件设置数据。

(3)Storyboard中:

(a)拖入UITableViewController,初始化、更改类名;
(b)更改cell类名、设置复用标识符identifier;
(c)创建子控件并完成属性关联。

(二)通过Xib自定义Cell:

(1)控制器中:

(a)创建UITabelView,设置代理、完成【nib】注册等;
(b)取出cell、模型数据,并完成模型赋值(如果未注册,则自己加载nib文件);

(2)自定义cell类中:

(a)重写model属性的set 方法给子控件设置数据。

(3)Xib文件中:

(a)拖入UITabelViewCell,更改类名、设置identifier;
(b)创建子控件并完成属性关联。

(三)通过Code自定义Cell:

(1)控制器中:

(a)创建UITabelView,设置代理、完成【类名】注册等;
(b)取出cell、模型数据,并完成模型赋值(如果未注册,则自己加载nib文件);

(2)自定义cell类中:

(a)重写initWithStyle: reuseIdentifier:定制cell子控件并添加至cell的contentView上;
(b)重写layoutSubviews设置子控件的frame;
(c)重写model属性的set 方法给子控件设置数据。

二、详细版

(一)通过Storyboard自定义Cell:

(1)创建CHJDealsTableViewController,继承于UITableViewController;

(2)创建空的storyboard文件,拖入UITableViewController,勾选初始化控制器箭头➡️,并更改storyboard中UITableViewController的类名;


添加并初始化UITableViewController
更改类名

(3)创建自定义cell类CHJDealsCell,继承于UITableViewCell;

(4)更改cell的类名并设置复用标识符identifier;


更改cell的类名

设置identifier

(5)创建cell的子控件并完成属性的关联;
创建cell子控件
完成属性关联

(6)创建CHJDealsModel类,继承于NSObject,完成模型转换;

(7)CHJDealsTableViewController中:取出模型数据,传给自定义的cell类CHJDealsCell;
取出cell,传递model

(8)重写模型对象的set方法,设置数据;
取出数据,完成设置

总结:
(a):UIStoryboard描述的是UIViewController级别的,用故事版来自定义cell(cell位于UITableView上)就意味着UITableView在故事版在的某个UIViewController上,它可以是个普通的UIViewController,也可以是UITableViewController;UITableView可以位于控制器的view上,也可以取代控制器view直接充当其view;
UITableViewController 的使用:https://www.jianshu.com/p/0fdec58da1d2
(b)在设置模版cell时,已经设置了cell的复用标识符,相当于cell已经注册过了,故取出cell时可以直接取到,不会为空;
(c)Model类完成数据转换,Cell类持有model并赋值,中间通过ViewController类完成数据调度,各居其位,各司其职;
(4)【UIStoryboard】 + 【UITableViewController】 =
【UIStoryboard】 + 【UIViewController】 + 【UITableView】 + 【Cell】;

(二)通过Xib自定义Cell:

(1)控制器中:创建 UITableView,遵守协议,设置代理,重写协议方法;
(2)创建CHJDealsModel类,继承于NSObject,完成模型转换;
(3)创建CHJDealsCell类,继承于UITableViewCell,并持有model对象;
(4)创建Xib文件、添加cell、更改类名、设置identifier并添加子控件完成关联;

(5)CHJDealsController中:取出模型数据,传给自定义的cell类CHJDealsCell;
取出cell,传递model

(6)CHJDealsCell中重写模型对象的set方法,设置数据;
取出数据,完成设置

总结:
(1)通过Xib自定义Cell其实是将UIStoryboard的工作【创建UITableView+创建UITabelViewCell】分别分散到UIViewController【创建UITableView】和Xib【完成UITabelViewCell】中完成,Model类和Cell的职责和工作量不变;
(2)取出Xib中的cell前应该完成注册或通过直接加载nib文件;

(三)通过Code自定义Cell:

(1)控制器中:创建 UITableView,遵守协议,设置代理,重写协议方法;
(3)创建CHJDealsModel类,继承于NSObject,完成模型转换;
(4)创建CHJDealsCell类,继承于UITableViewCell,并持有model对象;重写initWithStyle: reuseIdentifier:方法定制cell子控件并添加至cell的contentView上、重写layoutSubviews设置子控件的frame、重写model属性的set 方法给子控件设置数据;
(5)CHJDealsController中:取出模型数据,传给自定义的cell类CHJDealsCell;
(6)CHJDealsCell中重写模型对象的set方法,设置数据;

总结:
(1)通过纯代码自定义Cell其实是将Xib的工作【创建UITabelViewCell】在initWithFrame:中完成,Model类和Cell的职责不变;
(2)取出cell前应该完成注册或通过直接创建某种类型的cell;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352