初步理解UITableView以及MVC(二)

这部分感谢超哥以及51,让我学到更多知识对于一个初学者,少走不少弯路。

为了tableView以及cell理解,准备写一个聊天列表以及部分聊天记录的cell模块。

列表化-截图

可以清晰的看到,有测试0-10个数据,当点击测试5等按钮的时候,会展开列表,显示其里面的内容,亲戚好友等内容,我暂时不会网络,根据51的内容,是用plist完成的数据.

数据-截图

可以看出来,这个plist里面的内容有三项内容,组名,在线人数,以及点开的时候展现的内容从上面的列表化得截图中可以看出来也就是三个部分,图标,描述,以及标题.

那么我们可以分得的模块是一组一组的以及组里面的模块,最小的模块是最简单地,所以我们看一下粒化最小的. friends是怎么的样子.

friends里面内容-截图

可以看出来,里面有14个项,每项的内容分别为icon, intro,name.这样的信息,我们就可以写成这样的MVC中的模型,模型为:

friend模型-截图

下面的方法是实现字典转模型用的,名字是必须和字典里面的名字是一样的,要不然不可以,暂时我是这么记得,以后会说明一下这玩意是什么的.

方法-截图

可以看出来,+方法就是创建对象, 调用对象方法,把字典转模型.这样的话,我们就把最开始的模型就完成了,那么,我们在往上看一下,那么就是一组一组的范围了.它数据-截图中说明了.里面包含的friends,name,online这几个字段, 我们可以看出来,friends是一个数组,那么我们的模型就要写成这样:

组模型-截图

里面是一个数组friends,以及那些数据,下面的方法是字典转模型用的.

组方法-截图

里面比模型里面的多了一个步骤,就是把friends的数组,分别取出来,赋值,再添加到组模型当中,for循环中的in是后面的是集合,逐一取出然后操作(这个我不会所以写出来了).

懒加载-截图

MVC中C中对于数据的加载截图中,是从包路径中找到firends.plist文件加载,加载完毕后赋值给dicArray中,在逐一取出,分别给组模型中的内容赋值.(这里面别忽略了上面提到的组模型中的数组,friends数组,在辅助的同属就会把friend模型的内容赋值过去,在这期间我们也可以做很多事情,比如,运算friend的内容尺寸等时间,在算firend尺寸这事吧,就是把组换成带有friend尺寸的M,就好比说其实就是friend的拓展,就是稍微多了尺寸,就是附加属性,我语文不好不知道说没说明白,就可以放在组(前面逻辑)这里面运算,这样当以后用到的时候就会直接拿来用了).这样就会模型之间就完事了.

这样.我们在C中就可以写tableView了.首先,功能是逐一实现的,所以先实现最简单的内容,在逐一添加功能.又因为这样是cell,因为长得都差不多,上下滚动的,所及是cell,理由就这个简单.

cell类-截图
cell方法-截图

这两站图可以清晰的看出来这个cell类都干了些什么不为人知的事情,其实很简单,写的也很清晰明了,再次感学51这位老师,cell就是做cell自己的事,初始化,设置什么的都是在cell类中进行,不需要到C中进行.这样无论界面怎么变化都是在cell一个文件中修改.下面的第二个方法,就是重写了set方法,在friend赋值的情况下,在给cell的其他属性赋值.

数据源方法-截图

这样看,我们的思路就是很清晰了.无非就是,告诉编译器,这有多少组,每组有多少行,每行显示的内容是什么样子的.在cellForRowAtIndexPath中体现了简洁,就两个步骤,创建cell,设置数据.仅此而已,这样的话,就可以吧friends中的内容显示出来了.在前面(一)中,我好像提一嘴footer以及heard的事情,我们可以看一下.因为我们是可以点击上面的,所以,上面是按钮Button所以,在一中的就不可以了,我们可以在tableView的代理中找到:

head返回View方法-截图

这两个方法,就可以返回的是View,既然是View那么我们就可以在View上添加我们想要的一切,在里面添加Button,那么,这个head就可以点击了,这样的话,第一个图当中样式也就可想而知了,就是布局问题了.

headView-截图

这里可以看出来,类方法,就是创建对象,缓存池没有,就创建,其次就是初始化布局信息,初始化基本信息.init方法,就是初始化控件等内容,没有大小,所以,在init方法中设置大小,位置是没用的.设置位置的方法是这个:

init方法之后设置frame的方法-截图

这里设置frame才有用,这个方法,是父控件frame改变的时候就会调用,以及时的改变子控件的位置.

headView剩下-截图

设置数据,这里补充一点,setgourp的set方法,没有完全覆盖数据,应该,对于循环利用的东西,要保持能变的东西的数据都是最新的.所以要添加image的改变的方法.先使用的, 监听按钮点击事件,以及作相应的操作,完了,当你点击的时候,再用代理方法,告诉C,用户点击了这个按钮,以及时的处理事件.

代理方法-截图

就是简单地刷新数据,让其列表展开,上面的图,didMoveToSuperview是添加到父控件就会调用,为什么引入,这个函数那,是因为,head的缓冲池,是当前tableView不刷新的情况下,上下移动发,更换的时候,是从缓冲池里查看,但是我们调用了tableView 的 reload方法,这个方法就会刷新headview,那样的话,就会重新生成一个headview,所以,我们加入在按钮事件上写按钮变化,那么,上一个head都不存在了,何必是状态那,所以是看不出来的,所起,引入了模型当中的变量,加入按钮被点击,那么成员就会更改其状态,加入再次读取数据的时候就会更新最新的状态,到用户的眼前,所以,这样引入了这个didMoveToSuperview 的方法.

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

推荐阅读更多精彩内容