0

@"/Documents/MyApp%d.png に画像を保存し、整数値を設定した NSMutableArray を持っています。たとえば、私の NSMutableArray には (2,3,5,6,7,12,14,16) が含まれていますグリッドでは、MyApp2、MyApp3、MyApp5 など (配列から) が表示されます。これが私のグリッド ビューです。 ここに画像の説明を入力

MyApp5 である gridview の 3 番目のインデックスをクリックすると、swipeView で開きます。このような ここに画像の説明を入力

削除アイコンをクリックすると、この画像が削除されます。nsmutablearray に (2,3,5,6,7,12,14,16) があったことを思い出してください。この画像を削除すると、値がこれ (2,3,6,7,12,14,16) に変わります。これは、正常に削除されたことを意味しますが、グリッド ビューに戻ると、このように表示されます。 ここに画像の説明を入力

どこが間違っているのかわからない。しかし、私が戻って再びグリッドビューに戻ると、すべての画像が正しく表示されます。

このコードを gridViewリンクに使用しています

4

2 に答える 2

0

以下のように cellIdentifier を取得してみてください。(int reloader を定義) そして、tableview をリロードする必要がある場合は、reloader を増やしてみてください。以下に reloadData 関数を記述しました。使用できます。

-(NSString *) getCellIdentifier:(NSInteger)index sectionindex:(NSInteger)section{
    return [[[NSString stringWithFormat:@"%i",section] stringByAppendingFormat:@"%i" , index] stringByAppendingFormat:@"%i", reloader];
}

- (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *cellIdentifier = [self getCellIdentifier:indexPath.row sectionindex:indexPath.section];
    cell= [tableView dequeueReusableCellWithIdentifier:cellIdentifier]
    if (cell == nil) {
        cell = [[Cell alloc] init];
    }

    cell.label.text = [NSString stringWithFormat:@"(%d,%d)", rowIndex, columnIndex];

    return cell;
}

-(void) reloadData{
    reloader++;
    [tableView reloadData];
}
于 2012-12-19T09:57:44.630 に答える
0

そのUIGridViewプロジェクトの は のサブクラスですUITableViewreloadDataメッセージを送ってみましたか?

また、Apple はUIプレフィックス (および他のすべての 2 文字のプレフィックス) を予約しています。UIGridViewApple が提供していない名前のクラスを使用するのは危険です。

于 2012-12-18T18:22:53.453 に答える