画像編集ツールを書いています。UITableview
ドキュメント フォルダの内容を表示している があります。これはすべて期待どおりに機能しています。私が抱えている問題は、新しいファイルを追加するとき、またはドキュメント フォルダーからファイルを削除するときです。
refreshFiles
リロード データを呼び出す前に呼び出すファイルを作成または削除する場合、チェックを使用するif(cell == nil)
と、ファイル配列の長さの増減に基づいてセルが作成または削除されます。
最後UITableViewCell
は、配列の最後の場所にあるファイル名をそのフィールドの名前として取得します。ただし、新しいファイル名は配列内の任意の場所にある可能性があります。正しい内容が表示されるようにするために、if(cell==nil)
チェックを外しました。これにより、呼び出されるたびにすべてのセルが再描画されます。
-(void)refreshFiles {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *pathList = [paths objectAtIndex:0];
NSArray *fileListing = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathList error:nil];
NSPredicate *filter = [NSPredicate predicateWithFormat:@"self ENDSWITH '.png'"];
self.fileList = [fileListing filteredArrayUsingPredicate:filter];
[self.fileview reloadData]
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCel *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// if (cell == nil) {
cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease];
objectAtIndex:indexPath.row],self.fileList.count,indexPath.row);
cell.textLabel.text = [self.fileList objectAtIndex:indexPath.row];
// }
return cell;
}
しかし、これは有効な作業方法ですか?将来的にパフォーマンスの問題が発生する可能性はありますか?