iOS Table Empty View

Listeleme gerektiren ya da ekleme – çıkarma yaptığımız Table View bölümlerinde eğer listelenecek herhangi bir içerik olmadığını göstermek istiyorsak iki yolu var. Birisi Alert View kullanmak ikincisi de table view’a direk mesaj yazmak. İkincisi her zaman terciğim. Ancak genelde table listesinin hücresine(cell) yazmayı tercih ediyordum. Bu da bir çok gereksiz koşul koymamı sağlıyordu. Bugün daha güzelini keşfettim. Table listesinin üzerine başka bir view eklemek ve dolu-boş koşuna göre göster-gizle yapmak. Kulağa mantıklı geliyor değil mi ? Yani “Talk is cheap show me your code.” diyenlerdenseniz aşağıya göz atabilirsiniz.
viewDidLoad:


- (void)viewDidLoad {
    [super viewDidLoad];

    // Global declared 'noMatchedView'
    noMatchedView = [[UIView alloc] initWithFrame:self.view.frame];
    noMatchedView.backgroundColor = [UIColor whiteColor];
    
    noMatchedLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
    noMatchedLabel.font = [UIFont boldSystemFontOfSize:18];
    noMatchedLabel.numberOfLines = 1;
    noMatchedLabel.shadowColor = [UIColor lightTextColor];
    noMatchedLabel.textColor = [UIColor darkGrayColor];
    noMatchedLabel.shadowOffset = CGSizeMake(0, 1);
    noMatchedLabel.backgroundColor = [UIColor clearColor];
    noMatchedLabel.text = @"Takas edeceğiniz ürününüz yok.";
    noMatchedLabel.textAlignment = NSTextAlignmentCenter;
    noMatchedView.hidden = YES;
    [noMatchedView addSubview:noMatchedLabel];
    [self.tableView insertSubview:noMatchedView belowSubview:self.tableView];
}

daha sonra tableView:numberOfRowsInSection delegate metodunda göster-gizle işlemini yapabiliriz.


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
    if(self.items.count == 0) {
        self.tableView.separatorColor = [UIColor clearColor];
        noMatchedView.hidden = NO;
    } else {
        noMatchedView.hidden = YES;
    }
    return self.items.count;
}

Ayrıca aşağıdaki hazır ve gayet güzel olan TableView / CollectionView ile uyumlu bir kütüphane var.
https://github.com/dzenbot/DZNEmptyDataSet