1

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

点击前:

在此处输入图像描述


点击后:

在此处输入图像描述

如何在 iOS 中复制这种行为?我不知道我应该使用表格视图还是只构建通用 UIView。我正在使用自动布局。

4

3 回答 3

1

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

查看:

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

UITableView

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

UITableViewDelegate.

于 2012-10-09T19:23:50.473 回答
0

只需为UITableView. 使用viewforheaderinsection方法来做到这一点,并返回 UIButton 例如。如果你点击那个按钮,你应该插入UITableViewCells这个选定的组。我不能给你一个代码,因为我现在在 Windows 上,但这很简单。

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

于 2012-10-09T19:24:52.083 回答
0

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

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

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

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

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

于 2012-10-18T20:09:41.617 回答