选择UITableView时自动将行向下移动到底部

时间:2011-03-10 11:29:57

标签: ios objective-c iphone uitableview cocoa-touch

有人可以告诉我如何在选择时自动在UITableView中移动一行。

为了更清楚我的tableview有很多项目。当用户选择一行时,该行必须移动到UITableView中最底部的行。

任何代码片段或指针都会受到赞赏。

由于

3 个答案:

答案 0 :(得分:1)

您可以使用表视图委托方法来执行此操作。 要获得所选行,您可以使用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

这将有助于您了解移动行。

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/TableView_iPhone/ManageReorderRow/ManageReorderRow.html

答案 1 :(得分:1)

选择行时修改数据,可能是您的数组并重新加载表视图。 即 在你的

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

获取indexpath并从数据源数组中删除该数据,并将该值放在最后一个数据源数组中,最后使用

重新加载tableview
 [tableview reloadData];

答案 2 :(得分:1)

使用UITableViewDelegate协议

中的方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSUInteger index = indexPath.row;
    NSUInteger lastIndex = tableDataArray.count - 1;

    if (index == lastIndex) {
        return;
    }

    id obj = [[tableDataArray objectAtIndex:index] retain];
    [tableDataArray removeObjectAtIndex:index];
    [tableDataArray addObject:obj];
    [obj release];

//// without animation    
    [tableView reloadData];

//// with animation
//    [tableView beginUpdates];
//    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationBottom];
//    [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:lastIndex inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
//    [tableView endUpdates];
}