UITableView:可展开的 UITableView
针对 TableView,有些时候需要在点击 cell 时,展开这行 cell,显现出更多的选项或者全部内容等。
比较容易想到的处理方案就是利用 section,在未选择之前,每一行都是一个 section,待展开的内容都在这个 section 的 row 里面。在点击事件里,reload 当前选中的 section,在 numberOfRows 方法中,返回大于 0 的数量。
这里谈谈另外一种很简单的方法,直接在 TableViewCell 上面做文章。
1.点击 cell 时,在 didSelectRowAtIndexPath 方法中加两个方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView beginUpdates];
// UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
// cell.textLabel.text = [NSString stringWithFormat:@"Did Select %@", indexPath];
[tableView endUpdates];
}
2.如果需要变化这行 row 的高度,在 heightForRow 方法中,加入如下处理
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([indexPath isEqual:[tableView indexPathForSelectedRow]]) {
return 88;
}
return 44;
}
3.在 TableViewCell 的 setSelected:(BOOL)selected animated:(BOOL)animated 方法中,为选中和未选中分别做下处理即可。
#重要
beginUpdates 和 endUpdates 两个方法之间虽然什么也没有写,但是,这与 reloadData 是不同的,前者可以保持住 cell 的 selected 属性,而后者则把 selected 属性重置了。

UITableView:可展开的 UITableView的更多相关文章
- ios知识点总结——UITableView的展开与收缩及横向Table
UITableVIew是iOS开发中使用最为广泛的一种控件,对于UITableView的基本用法本文不做探讨,本文主要是针对UITableView的展开与收缩进行阐述,在文章的后面也会探讨一下横向ta ...
- UITableView多层展开与收起
规则要求: tableview 有多层,类似于xcode文件目录的层级关系,每一个最开始展示的层姑且称之为根目录吧,并且,每个根目录下的层数不定. 与文件目录类似,每个目录下可以有不同层级的目录同时展 ...
- 可展开的UITableView (附源码)
本文转载至 http://www.apkbus.com/forum.php?mod=viewthread&tid=137207&extra=page%3D1 由于工作需要,写了一个UI ...
- UITableView表格视图、UITableView代理方法及应用
一.基本知识点 UITableView表格视图,是一个可以滚动的界面(理解为垂直滚动的UIScrollView),可展示多行数据,没有行数的限制,只能有一列. 使用UITableView: 1.展示信 ...
- UITableView类用法大全:UITableView属性
[storyboard创建tableView步骤] 1.设置根视图 2.选中视图,设置导航栏editor/embed in/navigationcontroller 3.cell设置Identifie ...
- iOS开发——UI_swift篇&UITableView实现单元格展开与隐藏
UITableView实现单元格展开与隐藏 关于UITableView的展开的收缩在前面的文章我已经结束,就是使用代理,通知,block传值的时候实现的,当时是使用一个Bool值来实现,最后使用着三 ...
- UI第十八节——UITableView
在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,基本大部分应用都有UITableView.当然它的广泛使用自然离不开它强大的功能,今天就针对U ...
- iOS开发系列--UITableView全面解析
--UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是U ...
- UITableView全面解析
本文转自:http://www.cocoachina.com/ios/20140922/9710.html 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以 ...
随机推荐
- WebService中方法的重载
阅读目录 一:WebService中的方法是否允许重载? 二:为什么WebService中不支持方法的重载? 三:如何解决WebService中方法的重载? 一:WebService中的方法是否允许重 ...
- 手机抓包fiddle4的安装及配置
抓手机包可以用的是fiddle. 安装 先在下载页面下载--->Download Fiddler Web Debugging Tool for Free by Telerik 选择你“准备用fi ...
- Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?
老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...
- Linux各个文件夹的作用~~~非常实用!!
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录 ...
- whatweb tree
. ├── 1.txt ├── addons │ ├── country-scanner │ ├── gggooglescan │ ├── hunter │ └── verify-ni ...
- WCF数据契约
当使用DataMember时,和访问符无关,及时使用了private,成员都是可见的.相反如果使用static,为不可见. 上述的两个数据成员是等效的,如果是等效的话 数据成员的顺序也必须是相同的. ...
- Mac OS X上搭建Apache、PHP、MySQL的Web服务器
mac OS 系统太帅了,安装php的环境如此简单,大赞一个! 转载自http://jingyan.baidu.com/article/39810a23e1939fb636fda6a9.html 在M ...
- Spring-boot 启动完成时执行指定任务
在服务启动完成时,如果需要执行一些特定的预加载任务,则可以通过实现 CommandLineRunner 接口来实现. 实现 @Component public class Started implem ...
- c++--------获取某个路径下所有文件的文件名,读写TXT文件到新的文件
好久没写io操作了,手生了好多,为了防止自己老年痴呆,最简单实用的c++代码也push上来吧, 环境:mac,xcode(注意mac环境下Windows的函数不能用) 功能:打开一个文件目录,把所有文 ...
- react学习资源
http://www.ruanyifeng.com/blog/2015/03/react.html http://www.ruanyifeng.com/blog/2015/02/future-of-d ...