[英]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.