通過代碼自定義cell(cell高度不一致)

第一步:新建一個(gè)繼承自UiTableViewCell的類。

第二步:先在新建的類中重寫初始化方法,把所有可能用到的控件都添加上去。(不需要設(shè)置子控件的數(shù)據(jù)和frame,子控件要添加到contentVIew中)

第三步:在類中添加模型屬性。

在這一步可以順便同時(shí)把控件中一些不會(huì)改變的屬性設(shè)置上,比如:字體和固定的圖片 。

第四步:提供兩個(gè)模型:

數(shù)據(jù)模型:存放文字?jǐn)?shù)據(jù)\圖片數(shù)據(jù)

Frame模型:數(shù)據(jù)模型和所有子控件的Frame和每個(gè)cell所占的高度。

第五步:每個(gè)cell擁有一個(gè)Frame模型(不要直接擁有數(shù)據(jù)模型)

第六步:重寫frame模型屬性的setter方法,在方法中設(shè)置給子控件添加數(shù)據(jù),并設(shè)置好Frame

第七步:Frame模型數(shù)據(jù)的初始化依然采用懶加載的方法(每一個(gè)cell對應(yīng)的frame模型數(shù)據(jù)只加載一次)

注意:在使用自定義cell的時(shí)候,一定要記得重新設(shè)置cell上某些控件的狀態(tài),否則從重用池中取出的cell會(huì)保留加入緩存池時(shí)候的狀態(tài),因此,從重用池中取出cell的時(shí)候一定做兩件事:

第一件事:修改cell上的數(shù)據(jù)

第二件事:修改cell上自定義控件的狀態(tài)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容