在iOS开发关于UITableView的使用是普遍的,但是对于cell的理解我也是略懂皮毛。这里还是要和大家分享一下,希望看到的朋友能给予相关的帮助,这里感激不尽。
今天在做一个简单的界面信息展示,本设想用一个View展示算了,但是为了后期便于扩展和更多内容展示还是决定用了Cell。
cell与数据源常采用MVC模式
在Controller里添加一数组或字典属性作为数据源,在Model里解析对应的字典(JSON数据多为字典型)的键,通过控制器将Model引用到View,对View的各个属性赋值。这就是常用的简单的MVC模式。这种模式适合大量重复的数据源信息展示。采用这种方式可以减轻控制器的负担。
cell与Controller模式
这种一般是选用与数据源信息量较少,暂时没有必要去添加Model模型。它的好处就是方便后期扩展。而且当展示信息量比较长时,也比ScrollView+view省事的多。而且采用自动布局也比较方便。在对cell属性进行赋值时,只需Controller直接将赋值就行。
然而今天在项目里却出现了一种另我不解的情况。
错误提示:
'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x7c2f4140'
分别采用了MVC和Controller直接赋值的模式。在没有对Cell赋值前,cell可以正常在tableView里正常显示。
经一番折腾,可还是未解决该问题。我还以为是我赋值方法错误。最后重新添加了一个cell的xib。可以正常赋值了。故问题锁定在了自动布局。我是采用autolayout布局。指定了lable的高度,行数设定值为0。在xib里显示布局正常,没有报错。然而就是在赋值这块出了问题,不知你有没遇到过相似问题,或知道问题出在哪里,感谢告知。