2011-03-18 46 views
5
的顶部

嗨,我找了这个问题,我不相信我会找到答案。我有一个自定义单元格的表格,点击时,选定的单元格将一个新的单元格与信息。我想知道是否有人知道如何将所选单元格推到可用视图的顶部,或者填充整个tableview。iPhone - 有选择的细胞转移到UITableView的

我的uitableview只占用了屏幕的一半,我希望当单元格被选中时它只占用屏幕的一半,并且用户仍然能够滚动单元格(如果这是有意义的) ?

任何建议,将不胜感激,这是有些困难来形容我所期待的,所以如果有人需要澄清,请不要犹豫,问我。

谢谢!

回答

13

中的cellForRowAtIndexPath,你需要把这个在你创建细胞

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

后这奏效了,我与细胞的自定义高度为好。

0

在我的应用我有一堆细胞的扩大点击时要大一些;一次只能扩展1个单元。我基本上跟踪当前选择的indexPath,然后在heightForRowAtIndexPath中:检查这是否是选择的卖出;如果是我返回更高的高度。

然后,在didSelectRowAtIndexPath方法:我刚才设置的电流indexPath,并重新加载这两个新的细胞和前一个。这听起来与你正在寻找的东西类似......会起作用吗?

0

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

在您的数据源的的tableView:的cellForRowAtIndexPath:方法,您要确保所选择的小区则返回索引0和它们的索引返回前,所选单元格的所有单元格+ 1

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所保留的位置。当然,您还需要匹配数据源中的新订单。 (如您的数据的阵列中改变顺序)

此外,你可能会想,当你做这个表中滚动到顶部。

+0

我会如何将单元格回哪里当它被取消它是什么? – 2011-03-18 21:41:27