功能名稱:活動(dòng)報(bào)名棍潘。
功能簡(jiǎn)介:XX平臺(tái)不定期發(fā)布活動(dòng),用戶可以報(bào)名(至少1人崖媚,上不封頂)參加亦歉。
頁面結(jié)構(gòu):頁面整體為tableview,tableheaderview顯示一張活動(dòng)相關(guān)圖片畅哑,tablefooterview用于承載備注信息肴楷,cell有兩個(gè)功能:1.輸入報(bào)名人信息。2.添加一個(gè)報(bào)名人荠呐。
功能描述:默認(rèn)顯示兩個(gè)cell赛蔫,第一個(gè)cell為展開(填寫報(bào)名信息)狀態(tài),第二個(gè)cell為收起(添加報(bào)名人)狀態(tài)泥张。點(diǎn)擊“添加”按鈕呵恢,當(dāng)前cell由收起狀態(tài)更改為展開狀態(tài),同時(shí)增加一個(gè)收起狀態(tài)的cell媚创。
備注:本文僅介紹UI部分的功能實(shí)現(xiàn)。
UI示例:
實(shí)現(xiàn)條件:
0.模型數(shù)組(可變)
1.模型擁有一個(gè)BOOL類型的屬性声离,用于標(biāo)記cell的 展開 和 收起 兩種狀態(tài)瘫怜。
2.cell擁有高度屬性 cellHeight
3.cell的布局:放置兩個(gè)容器視圖宝磨,一個(gè)承載UITextField等報(bào)名信息相關(guān)內(nèi)容,另一個(gè)承載加號(hào)按鈕等世囊。
4.根據(jù)模型的兩種狀態(tài)決定要 顯示的容器視圖 和 cellHeight窿祥。
5.在cell的setModel中根據(jù)模型狀態(tài)隱藏和顯示容器視圖,并且計(jì)算行高
6.在返回行高的方法中設(shè)置模型嗤瞎,返回cell的cellHeight
7.設(shè)置控制器為cell的代理听系,點(diǎn)擊“添加”按鈕時(shí)通知控制器靠胜,增加一個(gè)新的模型(收起狀態(tài))并刷新tableview
實(shí)現(xiàn)思路:
一。初始化tableview時(shí)陕习,向模型數(shù)組中添加兩個(gè)模型址愿,一個(gè)是展開狀態(tài),一個(gè)是收起狀態(tài)响谓。二。在cell的setModel方法中塌忽,1.如果模型是展開狀態(tài)失驶,則顯示“展開”容器視圖并隱藏“收起”容器視圖,反之則顯示“收起”容器視圖;2.計(jì)算cellHeight棉圈,“展開”狀態(tài)高度為最底部控件的CGRectGetMaxY值 + 固定值分瘾,“收起”狀態(tài)高度為 固定值(根據(jù)實(shí)際需求決定). 三德召。在數(shù)據(jù)源方法中設(shè)置cell的代理為控制器汽纤,在控制器中實(shí)現(xiàn)cell的代理方法蕴坪,在代理方法中:1.創(chuàng)建一個(gè)模型(收起狀態(tài))背传,2.將新建的模型添加到模型數(shù)組中并且刷新tableview。
這個(gè)功能比較簡(jiǎn)單痴脾,所以就不貼代碼了梳星,請(qǐng)各位指教丰泊。謝謝薯定。