6

我寻找这个问题,我不相信我能找到答案。我有一个自定义单元格的表格视图,单击该单元格时,选定的单元格会推送一个包含信息的新单元格。我想知道是否有人知道如何将选定的单元格推到 uitableview 的顶部,或者让它填满整个 tableview。

My uitableview only takes up half of the screen, and I wish for when the cell is selected that it only take up that half of the screen, and the user is still able to scroll the cell (if that makes sense)?

任何建议将不胜感激,描述我在寻找什么有点困难,所以如果有人需要澄清,请随时问我。

4

4 回答 4

14

在 cellForRowAtIndexPath 中,您需要在创建单元格后将其放入

    [tableView scrollToRowAtIndexPath:selectedCellIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

这也为我提供了单元格的自定义高度。

于 2011-03-22T18:03:47.967 回答
0

在我的应用程序中,我有一堆单元格在单击时会展开更大;一次只能扩展 1 个单元格。我基本上会跟踪当前选中的indexPath,然后在heightForRowAtIndexPath: 中查看是否是选中的sell;如果是我返回更大的高度。

然后,在 didSelectRowAtIndexPath: 中,我只是设置了当前的 indexPath,并重新加载新单元格和上一个单元格。这听起来与您正在寻找的内容相似......这行得通吗?

于 2011-03-18T14:56:17.133 回答
0

要将选定单元格移动到表格视图的顶部,您可以将选定单元格的索引存储在 didSelectRowAtIndexPath 中的实例变量中,然后调用 [tableView reloadData]。

在数据源的 tableView:cellForRowAtIndexPath: 方法中,您将确保为索引 0 返回所选单元格,并且返回所选单元格之前的所有单元格的索引 + 1。

于 2011-03-18T16:26:31.340 回答
0

如果您正在寻找移动单元,这是您可以开始的基础。

-(void)moveIndexPathToTop:(NSIndexPath *)pathToMove
{
     [myTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:pathToMove] withRowAnimation:UITableViewRowAnimationFade];
     NSIndexPath *firstRow = [NSIndexPath indexPathForRow:0 inSection:0];
     [myTable insertRowsAtIndexPaths:[NSArray arrayWithObject:firstRow] withRowAnimation:UITableViewRowAnimationFade];
}

这会将行移动到 UITableView 的位置。当然,您还需要匹配数据源中的新顺序。(例如更改数据数组中的顺序)

此外,您可能希望在执行此操作时将表格滚动到顶部。

于 2011-03-18T16:52:26.553 回答