tableview单元格中的iOS 8拖放问题

时间:2014-06-26 20:43:46

标签: ios ios8

我正在研究一个功能,例如在tableview中为不同的行拖放单元格。我将第一项拖到最后一项并将行滚动到表视图的顶部。它在iOS 7.1版本上工作正常,但是当我使用iOS 8 beta模拟器测试相同的代码库时,拖动按钮消失了,我无法再拖动单元格了。这是我的示例代码供您参考。

- (void)viewDidLoad
{
    [super viewDidLoad];

    list = [[NSMutableArray alloc]initWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"10", @"11", @"12", @"13", @"14", @"15",@"16", nil];    
}

- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [list count];
}

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"DragCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease];
        cell.showsReorderControl = YES;
    }

    cell.textLabel.text = [list objectAtIndex:indexPath.row];

    return  cell;
}

- (UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewCellEditingStyleNone;
}

- (BOOL) tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

- (void) tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {

    NSInteger sourceRow = sourceIndexPath.row;
    NSInteger destRow = destinationIndexPath.row;
    id object = [list objectAtIndex:sourceRow];

    [list removeObjectAtIndex:sourceRow];
    [list insertObject:object atIndex:destRow];
}

如果你们在iOS 8中遇到同样的问题,请告诉我。

2 个答案:

答案 0 :(得分:1)

我可以证实这一点。我有一个Tableview with Cells,可以手动分类。在iOS8b2上没有重新排序按钮!

答案 1 :(得分:0)

我发现如果没有

,则不会出现重新排序控件
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath

实施,即使你在这里没有做任何事情!!