美文网首页
UITableViewCell展开合并

UITableViewCell展开合并

作者: X1aoHey | 来源:发表于2017-08-09 14:24 被阅读89次

感觉需要写点关于开发过程中的东西…但又不知道该写什么,从简单的写起吧。
没啥技术含量,纯当记录了。

前不久第一次遇到需要写cell的展开合并,按自己的思路写了一份,分享一下。
先看效果:

QQ20170809-140559-HD.gif

首先是在自定义的cell里面声明bool类型
@property (nonatomic, assign) BOOL isOpen;

接下来实现set方法:

- (void)setIsOpen:(BOOL)isOpen
{
    if(!isOpen) {
        // 这里可以把View移除
        return;
    }
    // 这里可以写展开合并部分的View的布局
}

我约束是用Masnory来写的,需要注意的是约束从上往下写,别用self.mas_centerY,因为cell高度会改变。

在ViewController中:
声明一个可变数组用来存放展开cell的indexPath.row

cell的高度需要改变:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *indexStr = [NSString stringWithFormat:@"%ld", (long)indexPath.row];
    if ([_indexArray containsObject:indexStr]) {
        return 展开后cell的高度;
    }
    return 合并后cell高度;
}

cell的didSelect方法中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *indexStr = [NSString stringWithFormat:@"%ld", (long)indexPath.row];
    
    MyTableViewCell *cell = (MyTableViewCell *)[self.tableView cellForRowAtIndexPath:indexPath];
    
    if ([_indexArray containsObject:indexStr]) {

        [_indexArray removeObject:indexStr];
        cell.isOpen = NO;
    }  else {
        [_indexArray addObject:indexStr];
        cell.isOpen = YES;
    }
    [_tableView reloadData];
}

完成,需要注意cell别复用哦~

如果只是UILabel的行数展开合并的话,只需要改label.numberOfLines就可以了。

相关文章

  • UITableViewCell展开合并

    感觉需要写点关于开发过程中的东西…但又不知道该写什么,从简单的写起吧。没啥技术含量,纯当记录了。 前不久第一次遇到...

  • 分组UITableView的展开与收起(转载)

    分组UITableView的展开与收起 UITableViewCell点击展开/关闭

  • html5 webstorm 快捷键

    快速移动选种的代码,上下移动 快速合并和展开代码 (合并或展开的是某一个标签) 快速合并和展开代码 (合并或展开选...

  • 实现UITableViewCell展开收缩

    首先要理解UITableView代理方法调用的先后顺序。 当初始化UITableView后,代理回调顺序如下 1:...

  • UITableViewCell点击展开/关闭

    第一种方法: 先说原理:1.在cell中定义一个属性:isSelected用来标记cell的选中状态;2.在Con...

  • 可展开的UITableViewCell

    在日常构建UI过程中,我们会遇到很多实用TableView的机会。又有很多时候,会遇到需要自定义适配cell高度的...

  • UITableViewCell 中嵌套webView动态计算高度

    最近忙着个项目,要在UItableViewCell 中加上一个webView 并且webView 需要全部展开显示...

  • tableView优化方案

    本文围绕以下几点展开tableView性能优化的论述? 1.UITableViewCell重用机制? 2.tabl...

  • WebStorm快捷键的使用

    1 注释 2 快速移动选中的代码 ,上下移动 3 快速合并和展开代码 (合并和展开的是某一个标签) 4 快速...

  • 合并展开弹出动画

    合并展开弹出动画 效果图: 要留的接口: 1、外界设置跳转视图的Frame 内部实现原理: 1、完成UIViewC...

网友评论

      本文标题:UITableViewCell展开合并

      本文链接:https://www.haomeiwen.com/subject/yiafrxtx.html