繁体   English   中英

iOS:具有扩展单元格的TableView

[英]iOS: TableView with expanding cells

我目前正在开发Android应用程序的iOS版本。 在一个屏幕上,我有一系列的行,当单击这些行时,它们会展开以提供信息。

点击之前:

在此处输入图片说明


点击后:

在此处输入图片说明

如何在iOS中复制此行为? 我不知道我应该使用表视图还是仅构造通用UIViews。 我正在使用自动版式。

您可以在特定的NSIndexPath处重新加载UITableVIewCell并计算单元格的新高度。

校验:

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

UITableView

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

UITableViewDelegate

只需为UITableView每个组自定义标题视图。 使用viewforheaderinsection方法执行此操作,例如返回UIButton。 而且,如果您点击该按钮,则应该在此选定的组中插入UITableViewCells 我无法给您代码,因为我现在在Windows上,但是操作非常简单。

UPD:请查看Apple提供的以下示例代码: http//developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010139

当您收到用于扩展表格单元格的touch事件时,请在表格控制器中使用以下调用

[self.tableView beginUpdates];
[self.tableView endUpdates];

尽管动画块为空,但调用beginUpdates和endUpdates会使表视图刷新单元格布局并为更改设置动画。 这将导致重新查询表视图委托-因此,请确保在UITableViewDelegate中实现以下方法(通常,将其设置为UITableViewController):

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

确保在收到触摸事件后,此方法将返回适当的扩展单元格大小。 结果将是一个很好的平滑单元格扩展动画:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM