IOS – tablo yapılarına “daha çok göster” alanı eklenmesi

Herkese merhaba,

Başlıktan da gördüğünüz gibi bu aralar boş vakitlerimde ; ) IOS development takılıyorum. Geçenlerde de bir tableview kasıyordum ki, zor bir problemle karşılaştım : sayfalama. Bir şekilde çözmeyi başarınca, bunu diğer arkadaşlarla da paylaşayım, hem bana da sonradan hatırlatma olur diye sizler için not düşüyorum.

İlk olarak bu fazladan eklenecek table view cell için bir xib dosyası hazırlıyorsunuz. Bu dosyaya artık button mu eklersiniz label mı yapıştırırsınız orası sizin bileceğiniz iş. Hücrenize fonksiyonalite de ekleyecekseniz, UITableViewCell den türemiş bir subclass da yazmanızı öneririm.

Hazırladığınız görselin identifierını bir kenara not edin ve ondan sonra tableview u handle edeceğiniz sınıfın uygulama dosyasına gelin. Burada bildiğiniz gibi tablonuzda kaç satırınız var ve bu satırlar için hangi hücreleri kullanacaksınızı belirlediğiniz iki metodunuz var. İşte bu metodlarda bazı değişiklikler yapacağız.

İlk olarak eleman sayımızı belirlediğimiz metodumuzu aşağıdakine benzer şekilde güncelleyebiliriz :


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

if ( isJsonData == YES ){

return [postData count] + 1;

}

else {

//TODO we will put a loading sign here afterwards

return 1;

}

}

Burada gördüğünüz gibi elimizdeki eleman sayısından bir fazla yer aldık. E bunu da demin hazırladığımız xib dosyasındaki cell ile kullanacağız. O kısımda da şöyle bir hareket yapıyoruz :


- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

...

if ( isJsonData == YES ) { //normal operation

...

}

else {

UITableViewCell* cellLoadMore = [tableView dequeueReusableCellWithIdentifier:loadMoreIdentifier];

if ( cellLoadMore == nil ) {

NSArray* nib = [ [ NSBundle mainBundle ] loadNibNamed:@"loadMoreCell" owner:self options:nil ];

cellLoadMore = [ nib objectAtIndex:0 ];

}

return cellLoadMore;

}

...

}

İşte bu şekilde artık tablomuzun sonunda daha fazla satır getirmemiz için bağıran bir table cellimiz oldu. Table cell için özel olarak bir xib dosyası hazırladık, üzerine de bunu kenar koşul oluştuğu anda kullandık.

Bu doldurma tuşuna basınca ne olacağını da bir sonraki seferde konuşuruz artık.

İyi çalışmalar