在iOS開發(fā)關(guān)于UITableView的使用是普遍的帜慢,但是對于cell的理解我也是略懂皮毛粱玲。這里還是要和大家分享一下拜轨,希望看到的朋友能給予相關(guān)的幫助,這里感激不盡胯甩。
今天在做一個簡單的界面信息展示堪嫂,本設想用一個View展示算了,但是為了后期便于擴展和更多內(nèi)容展示還是決定用了Cell淹办。
cell與數(shù)據(jù)源常采用MVC模式
在Controller里添加一數(shù)組或字典屬性作為數(shù)據(jù)源恶复,在Model里解析對應的字典(JSON數(shù)據(jù)多為字典型)的鍵谤牡,通過控制器將Model引用到View,對View的各個屬性賦值恐疲。這就是常用的簡單的MVC模式碳蛋。這種模式適合大量重復的數(shù)據(jù)源信息展示零蓉。采用這種方式可以減輕控制器的負擔箩兽。
cell與Controller模式
這種一般是選用與數(shù)據(jù)源信息量較少,暫時沒有必要去添加Model模型囊陡。它的好處就是方便后期擴展撞反。而且當展示信息量比較長時搪花,也比ScrollView+view省事的多。而且采用自動布局也比較方便吮便。在對cell屬性進行賦值時髓需,只需Controller直接將賦值就行。
然而今天在項目里卻出現(xiàn)了一種另我不解的情況咧擂。
錯誤提示:
'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x7c2f4140'
分別采用了MVC和Controller直接賦值的模式。在沒有對Cell賦值前攻臀,cell可以正常在tableView里正常顯示。
經(jīng)一番折騰,可還是未解決該問題换团。我還以為是我賦值方法錯誤艘包。最后重新添加了一個cell的xib∩喑可以正常賦值了裙椭。故問題鎖定在了自動布局揉燃。我是采用autolayout布局筋栋。指定了lable的高度,行數(shù)設定值為0婿崭。在xib里顯示布局正常肴颊,沒有報錯婿着。然而就是在賦值這塊出了問題提完,不知你有沒遇到過相似問題徒欣,或知道問題出在哪里打肝,感謝告知粗梭。