我正在研究一个功能,例如在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中遇到同样的问题,请告诉我。
答案 0 :(得分:1)
我可以证实这一点。我有一个Tableview with Cells,可以手动分类。在iOS8b2上没有重新排序按钮!
答案 1 :(得分:0)
我发现如果没有
,则不会出现重新排序控件-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
实施,即使你在这里没有做任何事情!!