iOS - tableViewCell 收起、展开 (最后一组展
2016-11-30 本文已影响519人
Mr_Bob_
前言:
最近做商城项目时候,做到tableViewCell
的展开和收缩的时候遇到一个问题,就是当一行在 tableview 底部时候, tableview 默认是不是会上移的,这样展开的内容就会被遮挡,看不到效果,出现的问题如下图:
![](https://img.haomeiwen.com/i1045476/d1438ec5debe3c7b.gif)
想实现的效果是:如果展开的是一列在 tableView 的底部的时候,tableView 会自动上移,这样就可以看到展开的内容,效果如:
![](https://img.haomeiwen.com/i1045476/1496839ac6e37ee7.gif)
分析:
我项目中实现的思路是 购买套餐
是个 label 然后加了点击手势来监听点击事件的,然后可以拿到点击的位置,判断在是不是在 tableView 的最后一行的范围内,如在的话就让 tableview 上移一个列的高度
具体的实现代码:
CGPoint point = [recognizer locationInView:self.tableView];
CGFloat point_y = point.y;
// 96 是每组的高度
if (point_y > self.tableView.frame.size.height - 96) { // 点击是最最后一行
// 每组下的分行的高度是 60 加上间隔和"购买服务"几个字的高度 = 80
[self.tableView setContentOffset:CGPointMake(0, self.tableView.contentOffset.y + 80)];
}