频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
程序开发自定义Cell伸缩实现方法
2018-05-05 15:36:06      个评论    来源:u011118092的博客  
收藏   我要投稿

程序开发自定义Cell伸缩实现方法。

\

思路:

1. 点击黄色的Button我们其实想要得到是Cell所在的行数,从而刷表,从新调用表的heightForRowAtindexPath 代理,将所选中的cell的高进行改变,从而得到我们所看到的伸展cell。

2.难点:

(1).在cell中自定义的button怎么获取cell的indexPath ?

(2).在heightForRowAtindexPath 代理 中如何让判断所要改变的行是伸展换是收缩 ?

3. 解决

(1)在Button的点击事件中获取Cell的indexpath:

let tagViewcell = sender.superview.superview as! UITableViewCell (注意父类的层次结构)

let indexpath = tableView.indexPath(for: tagViewcell)

(2)强制刷行点击的行: 刷新行

tableView.reloadRows(at: [IndexPath(row: (indexpath.row)! , section:0)] , with: .automatic)

(3)利用数组解决判断要改变的行:

在点击button的事件中判断 if let index = selectedCellArray.index(of: (indexpath.row)!) 若存在则返回元素所在数组的下表,根据下标删除数组中的元素selectedCellArray.remove(at: index), 若不存在在数组中添加selectedCellArray.append((indexpath.row)! )// 将行数存储起来

示例:

if let index = selectedCellArray.index(of: (indexpath.row)!) {

selectedCellArray.remove(at: index )

}else{

selectedCellArray.append((indexpath.row)! ) // 将行数存储起来

}


在表的行高代理中判断,indexpath.row 是否包含在selectedCellArray中。

示例:

if selectedCellArray.contains(indexPath.row) { // 对比是比较将行数

return 200

}else{

return 33

}

点击复制链接 与好友分享!回本站首页
上一篇:如何在Vue项目中优雅的使用swiper插件
下一篇:Aria2c开源库makefile文件的编写方法
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站