Archive for October, 2009
TableView Section Ekleme Çıkarma
Posted by Kayhan Bölükbaş in iPhone on October 17th, 2009
iPhone uygulamalarında zaman zaman tablolara dinamik olarak yeni bölümler (section) eklenip çıkarıldığını görüyoruz. Bu işlem oldukça basit ve birkaç satır kod ile gerçekleştirebilir.
Yapmamız gereken aşağıdaki gibi bir metod eklemekten ibaret:
- (void) insertAndDeleteSections { UITableView *tv = (UITableView *)self.view; [tv beginUpdates]; if([tv numberOfSections] > 1){ [tv deleteSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationBottom]; } [tv insertSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationFade]; [tv endUpdates]; }
Eğer bu metodu ekleme/silme yapmak istediğimiz noktadan çağırırsak varolan bölümün silinip yerine yenisinin eklendiğini ve tablonun yeniden yüklendiğini göreceğiz. “NSIndexSet” silmek istediğimiz bölümün index bilgisini içeriyor.
Buraya kadar işler kolay ancak dikkat edilmesi gereken ve unutulabilen bir nokta var. Örneğin tablomuzdan bir bölümü sileceğiz ama bir yenisini ekleme ihtiyacımız yok. Bu durumda yukarıdaki metoddan “insertSections” parçasını çıkarıyoruz. Bunu yaptıktan sonra önemli olan “numberOfSectionsInTableView” metodundaki dönüş değerinin yeni bölüm sayısı kadar olması. Aksi takdirde çıkarılan sayı kadar ekleme yapılmadığına dair bir hata alınacaktır. Tabii bu durum silmeyip sadece ekleme yaptığımız durumlar içinde geçerli olacaktır. Bu örnekte “dataRows” eklenen/çıkarılan bölümde gösterilen satırları temsil ediyor. Eğer bu veri yok ise section siliyor ve section sayısını 1′e indiriliyor.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { if([dataRows count] > 0){ return 2; }else { return 1; }
}
Güncel Yorumlar