UITableView! 'Dan UITableViewCells'ı ekleyerek ve silerek oldukça acı çekiyorum! Bu kod 5 bölümleri oluştururAynı anda UITableViewCell ekleme ve silme Çalışmıyor
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 5;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (iSelectedSection == section) return 5;
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//NSLog(@"drawing row:%d section:%d", [indexPath row], [indexPath section]);
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
if (iSelectedSection == [indexPath section]) {
cell.textColor = [UIColor redColor];
} else {
cell.textColor = [UIColor blackColor];
}
cell.text = [NSString stringWithFormat:@"Section: %d Row: %d", [indexPath section], [indexPath row]];
// Set up the cell
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Navigation logic -- create and push a new view controller
if ([indexPath row] == 0) {
NSMutableArray *rowsToRemove = [NSMutableArray array];
NSMutableArray *rowsToAdd = [NSMutableArray array];
for(int i=0; i<5; i++) {
//NSLog(@"Adding row:%d section:%d ", i, [indexPath section]);
//NSLog(@"Removing row:%d section:%d ", i, iSelectedSection);
[rowsToAdd addObject:[NSIndexPath indexPathForRow:i inSection:[indexPath section]]];
[rowsToRemove addObject:[NSIndexPath indexPathForRow:i inSection:iSelectedSection]];
}
iSelectedSection = [indexPath section];
[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:rowsToRemove withRowAnimation:YES];
[tableView insertRowsAtIndexPaths:rowsToAdd withRowAnimation:YES];
[tableView endUpdates];
}
}
:
Normalde kod sonrası yok, ama bu ben sorun yaşıyorum yeri gösteren en iyi yolu olduğunu düşünmüş İlk 5 satır ile 1 (0'dan endeksli). Bir bölüm seçtiğinizde - daha önce seçtiğiniz bölümdeki satırları kaldırır ve seçtiğiniz bölüme satır ekler.
Görüntü burada: Ben uygulamasını yüklediğinizde
Pictorally, ben böyle bir şey var http://www.freeimagehosting.net/uploads/1b9f2d57e7.png
bölüm 2'nin bir tablo satırını 0 seçtikten sonra, o zaman silme (varsayılan olarak seçilidir) bölüm 1 satır ve bölüm 2. satır eklemek Ama bu olsun:
Resimde: http://www.freeimagehosting.net/uploads/6d5d904e84.png
... Beklediğim şey bu değil! Kesin olarak silinse bile bölüm 2'nin ilk satırı bir şekilde kalıyor gibi görünüyor.
Ben sadece bir [tableView reloadData], her şey normal görünür yaparsanız
... ama belli ki güzel animasyonlar forefit.Birisi burada biraz ışık parlatabilirse gerçekten çok memnun olurum! Beni biraz delirtiyor! Bir kez daha, Nick.
eJames Hey, yorum için teşekkürler - gerçekten geçerli bir nokta !! Bir dakikalığına sorunumu çözebileceğini düşündüm - ama yine de aynı sıkıntım var. Aslında bir iPhone olabileceğini düşünüyorum, ancak bir bölümdeki öğeleri çıkarmaya çalıştığınızda ve aynı anda başka bir bölüme eklediğinizde ... –