实现美团、百度等活动外卖列表展开界面
2016-04-11 本文已影响490人
cb6a1e2768d1
模仿的部分是点击tableview的活动时展开收回效果:
说明:
1.点击“优果原鲜”区域,push下一个页面
2.点击框框的内容,显示展开,再点击然后是收缩
效果:

说一下我的思路(使用Storyboard):
1.我是用两个自定义tableView为基层。
i)一个是滚动大tableView(外Cell)
ii)另一个是在大tableView里的Cell放了一个小的tableView(内Cell)
2.做好约束,Cell的约束要注意一个地方,距底部cell的距离的priority低于内cell的高度。

3.禁止内Cell的滚动效果

4.tableView有一个beginUpdates 和 endUpdates,单独更新一下这个Cell
//点击内Cell取到父View,即外Cell的TableView(有没有谁有比较好的方法?)
UITableView *bigTableView = (UITableView *)tableView.superview.superview.superview.superview;
5.点击展开后,解决滚动的时候Cell重用(复用)问题就行。
我是用block的方式:
__weak typeof(self) weakSelf = self;
cell.customSelectedBlock = ^ (BOOL selected, NSInteger row)
{
if (selected) {
[weakSelf.selectedArray addObject:@(row)];
}else{
[weakSelf.selectedArray removeObject:@(row)];
}
};
当然代理通知等都行,随你喜欢。
此外,我想一下为什么我要用内嵌Cell,是因为内Cell的数据可能是不确定的,通过网络请求下来的数据可多可少。我也不爱用for来写button,然后根据数据的多少来加多少个button。反正Cell也是可以自定义,这种是不是简单一点...