功能名稱:活動報名。
功能簡介:XX平臺不定期發(fā)布活動,用戶可以報名(至少1人,上不封頂)參加。
頁面結(jié)構(gòu):頁面整體為tableview,tableheaderview顯示一張活動相關(guān)圖片,tablefooterview用于承載備注信息,cell有兩個功能:1.輸入報名人信息。2.添加一個報名人。
功能描述:默認顯示兩個cell,第一個cell為展開(填寫報名信息)狀態(tài),第二個cell為收起(添加報名人)狀態(tài)。點擊“添加”按鈕,當前cell由收起狀態(tài)更改為展開狀態(tài),同時增加一個收起狀態(tài)的cell。
備注:本文僅介紹UI部分的功能實現(xiàn)。
UI示例:

實現(xiàn)條件:
0.模型數(shù)組(可變)
1.模型擁有一個BOOL類型的屬性,用于標記cell的 展開 和 收起 兩種狀態(tài)。
2.cell擁有高度屬性 cellHeight
3.cell的布局:放置兩個容器視圖,一個承載UITextField等報名信息相關(guān)內(nèi)容,另一個承載加號按鈕等。
4.根據(jù)模型的兩種狀態(tài)決定要 顯示的容器視圖 和 cellHeight。
5.在cell的setModel中根據(jù)模型狀態(tài)隱藏和顯示容器視圖,并且計算行高
6.在返回行高的方法中設(shè)置模型,返回cell的cellHeight
7.設(shè)置控制器為cell的代理,點擊“添加”按鈕時通知控制器,增加一個新的模型(收起狀態(tài))并刷新tableview
實現(xiàn)思路:
一。初始化tableview時,向模型數(shù)組中添加兩個模型,一個是展開狀態(tài),一個是收起狀態(tài)。二。在cell的setModel方法中,1.如果模型是展開狀態(tài),則顯示“展開”容器視圖并隱藏“收起”容器視圖,反之則顯示“收起”容器視圖;2.計算cellHeight,“展開”狀態(tài)高度為最底部控件的CGRectGetMaxY值 + 固定值,“收起”狀態(tài)高度為 固定值(根據(jù)實際需求決定). 三。在數(shù)據(jù)源方法中設(shè)置cell的代理為控制器,在控制器中實現(xiàn)cell的代理方法,在代理方法中:1.創(chuàng)建一個模型(收起狀態(tài)),2.將新建的模型添加到模型數(shù)組中并且刷新tableview。
這個功能比較簡單,所以就不貼代碼了,請各位指教。謝謝。