iOS - tableViewCell 收起、展开 (最后一组展

2016-11-30  本文已影响519人  Mr_Bob_
前言:

最近做商城项目时候,做到tableViewCell 的展开和收缩的时候遇到一个问题,就是当一行在 tableview 底部时候, tableview 默认是不是会上移的,这样展开的内容就会被遮挡,看不到效果,出现的问题如下图:

Untitled02.gif

想实现的效果是:如果展开的是一列在 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)];
    }

上一篇 下一篇

猜你喜欢

热点阅读