前言:
最近做商城项目时候,做到tableViewCell
的展开和收缩的时候遇到一个问题,就是当一行在 tableview 底部时候, tableview 默认是不是会上移的,这样展开的内容就会被遮挡,看不到效果,出现的问题如下图:
想实现的效果是:如果展开的是一列在 tableView 的底部的时候,tableView 会自动上移,这样就可以看到展开的内容,效果如:
Untitled01.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)];
}
网友评论