7

UITableViewCellの2つのクラス(セクション0は1行、セクション1は[self.dataArray count]行)を持つUITableViewを作成しようとしています。

私はこれらのリンクを試しました:http: //developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/ManageReorderRow/ManageReorderRow.html

UITableViewでの
並べ替えコントロールテーブルビューに並べ替えコントロールが表示されない

私は追加しました:

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

    // Get the object we are going to move
    Task *task = [[Task alloc] init];
    task = [self.taskArray  objectAtIndex:[destinationIndexPath row]];
    
    // We will delete and move it to another location so well have to retain it
    //[task retain];
    
    // Remove it an move it to other place
    [self.taskArray removeObjectAtIndex:[sourceIndexPath row]];
    [self.taskArray insertObject:task atIndex:[destinationIndexPath row]];
}


     // Override to support conditional rearranging of the table view.
     - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{
         if (indexPath.section == 1) {
             return YES;
         }
         return YES;
     }

そして、私はすべてのUITableViewCellクラスに追加しました:

cell.showsReorderControl = YES;

しかし、それでも運がなく、reaorderControlが表示されていません...誰か?これは非常に多くのチュートリアルを持っていることは非常に緊急で迷惑ですが、私にとってはうまくいきません。

編集:

UITableViewControllerではなくUIViewControllerを使用していたという事実を含めるために、少しトピックを変更しました。

4

2 に答える 2

16

で行の並べ替えを実装するには、とUITableViewを実装する必要があります。また、を実装することもできます。tableView:canMoveRowAtIndexPath:tableView:moveRowAtIndexPath:toIndexPath:tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:

そして最も重要なのは、並べ替えコントロールを表示するには、テーブルビューが編集モードになっている必要があることです。

于 2012-11-19T23:15:43.490 に答える
0

これを試して 。。。これは、編集モードでの単純なテーブルビューの場合のセルの配置と更新を処理します

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

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
     [tableData insertObject: [tableData objectAtIndex:sourceIndexPath.row] atIndex:destinationIndexPath.row];
     [tableData removeObjectAtIndex:(sourceIndexPath.row + 1)];
}
于 2013-11-04T09:47:13.033 に答える