iOS - 手动添加cell
功能名称:活动报名。
功能简介:XX平台不定期发布活动,用户可以报名(至少1人,上不封顶)参加。
页面结构:页面整体为tableview,tableheaderview显示一张活动相关图片,tablefooterview用于承载备注信息,cell有两个功能:1.输入报名人信息。2.添加一个报名人。
功能描述:默认显示两个cell,第一个cell为展开(填写报名信息)状态,第二个cell为收起(添加报名人)状态。点击“添加”按钮,当前cell由收起状态更改为展开状态,同时增加一个收起状态的cell。
备注:本文仅介绍UI部分的功能实现。
UI示例:
实现条件:
0.模型数组(可变)
1.模型拥有一个BOOL类型的属性,用于标记cell的 展开 和 收起 两种状态。
2.cell拥有高度属性 cellHeight
3.cell的布局:放置两个容器视图,一个承载UITextField等报名信息相关内容,另一个承载加号按钮等。
4.根据模型的两种状态决定要 显示的容器视图 和 cellHeight。
5.在cell的setModel中根据模型状态隐藏和显示容器视图,并且计算行高
6.在返回行高的方法中设置模型,返回cell的cellHeight
7.设置控制器为cell的代理,点击“添加”按钮时通知控制器,增加一个新的模型(收起状态)并刷新tableview
实现思路:
一。初始化tableview时,向模型数组中添加两个模型,一个是展开状态,一个是收起状态。二。在cell的setModel方法中,1.如果模型是展开状态,则显示“展开”容器视图并隐藏“收起”容器视图,反之则显示“收起”容器视图;2.计算cellHeight,“展开”状态高度为最底部控件的CGRectGetMaxY值 + 固定值,“收起”状态高度为 固定值(根据实际需求决定). 三。在数据源方法中设置cell的代理为控制器,在控制器中实现cell的代理方法,在代理方法中:1.创建一个模型(收起状态),2.将新建的模型添加到模型数组中并且刷新tableview。
这个功能比较简单,所以就不贴代码了,请各位指教。谢谢。