您的位置:首页 > 产品设计 > UI/UE

UItableView 如何实现Cell之间交换位置

2017-09-21 14:13 465 查看
首先

[self.tableView setEditing:YES animated:YES];
打开UItableView 的编辑模式

然后 实现两个代理方法:

-(BOOL)tableView:(UITableView *) tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath

{

    //打开编辑

    return YES;

}

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath

{

    //允许移动

    return YES;

    //return NO;

}
最后实现代理方法

[cpp] view
plain copy

-(void) tableView: (UITableView *) tableView moveRowAtIndexPath: (NSIndexPath *) oldPath toIndexPath:(NSIndexPath *) newPath  

{  

   // NSString *title = [[self.categoryList objectAtIndex:oldPath.row] retain];  

    BookCategory * caterory = [[self.categoryList objectAtIndex:oldPath.row] retain];  

    NSLog(@"title is %@",caterory);  

    [self.categoryList removeObjectAtIndex:oldPath.row];  

    [self.categoryList insertObject:caterory atIndex:newPath.row];  

    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];  

    for(int i=0;i<[self.categoryList count];i++){  

        BookCategory *bc = [self.categoryList objectAtIndex:i];  

        NSString *key = bc.categoryId;  

        NSInteger index = [self.categoryList indexOfObject:bc];  

        NSNumber *value = [NSNumber numberWithInt:index];  

        [ud setObject:value forKey:key];  

    }  

    [caterory release];  

    [self.tableView reloadData];  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: