データはどこから来ており、最初にいくつのセクションがあるかをどのように知ることができますか? これを説明することで、あなたの問題は簡単に解決できると思います。
nsmutablearray
各インデックスが通路であり、各オブジェクトにその通路の製品が含まれる多次元があるように見えますか? または、通路ごとに異なる配列を使用できますか?
セルを削除するときは、残っているセルの数を確認して呼び出すだけです[self.tableView reloadData];
(仮定の)例では;
通路の配列がある場合:
NSMutableArray *aisleOne = [[NSMutableArray alloc] initWithObjects:@"Product1", @"Product2", nil];
NSMutableArray *aisleTwo = [[NSMutableArray alloc] initWithObjects:@"Product1", @"Product2", nil];
NSMutableArray *aisleThree = [[NSMutableArray alloc] initWithObjects:@"Product1", @"Product2", nil];
NSMutableArray *aisleFour = [[NSMutableArray alloc] initWithObjects:@"Product1", @"Product2", nil];
そして、それらを 1 つの配列に追加します。
NSMutableArray *aisleArray = [[NSMutableArray alloc] initWithObjects:aisleOne, aisleTwo, aisleThree, aisleFour, nil];
次に、セルを削除するときにこのコードを呼び出します。aisleArray
(グローバルに定義する必要がある)からすべての空の通路を削除します。
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray:aisleArray];
for (int i=0; i<[tempArray count]; i++) {
if ([[tempArray objectAtIndex:i] count] == 0) {
[aisleArray removeObjectAtIndex:i];
}
}
[self.tableView reloadData];
これが機能するには、これらの 2 つの方法は次のようにする必要があります。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [aisleArray count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [[aisleArray objectAtIndex:section] count];
}
(未テスト)