The following are some frequently used iOS TableView tips while developing.

1. Change the tableview background color

Sometimes you probably need to change the whole table view background

self.tableView.backgroundColor = colorTableview;

2. Reload the data in Table view

After update the table data array/dictionary, you probably want to manually reload the whole table.

[self.fileSelectionTableView reloadData];

3. Remove blank table rows

By default there will be extra empty table cells in your tableview. See below imageļ¼š

To remove all the empty rows:

// remove all empty rows
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

4. TableView overlapped with Navigation Bar

It is a quite common issue if you have placed a tableView on the UIViewController, or use code to draw the tableView.

self.navigationController.navigationBar.translucent = NO;

5. Handle Even and Odd TableCell

Sometimes you want to treat differently on even and odd table cells.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.row %2 == 0){
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"dopboxCell" forIndexPath:indexPath];
        // Configure the cell...
        NSString *sectionTitle = [itemTitles objectAtIndex:indexPath.section];
        NSArray *sectionItems = [items objectForKey:sectionTitle];
        NSString *item = [sectionItems objectAtIndex:indexPath.row];
        cell.textLabel.text = item;
        //cell.imageView.image = [UIImage imageNamed:[self getImageFilename:animal]];
        return cell;
    }
    else{
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"icloudCell" forIndexPath:indexPath];
        // Configure the cell...
        NSString *sectionTitle = [itemTitles objectAtIndex:indexPath.section];
        NSArray *sectionItems = [items objectForKey:sectionTitle];
        NSString *item = [sectionItems objectAtIndex:indexPath.row];
        cell.textLabel.text = item;
        //cell.imageView.image = [UIImage imageNamed:[self getImageFilename:animal]];
        return cell;
    }
    else{
        return nil;
    }
}

6. Pull down to refresh the table

//Step 1: in the viewDidLoad method, 

// load data items at the start
[self wrapperDownLoadedItems];

self.refreshControl = [[UIRefreshControlalloc] init];
self.refreshControl.backgroundColor = [UIColor purpleColor];
self.refreshControl.tintColor = [UIColor whiteColor];
[self.refreshControl addTarget:self action:@selector(wrapperDownLoadedItems) forControlEvents:UIControlEventValueChanged];

//Step 2: implement the method wrapperDownLoadedItems

-(void) wrapperDownLoadedItems{

    // _feedItems is table data source array
    _feedItems = [[NSArray alloc] initObjects:XXXXXX];
    // need to reload it 
    [self.listTableView reloadData];

    // populate the table view


 self.listTableView.delegate = self;
    self.listTableView.dataSource = self; 
}

7. Make your TableView Cell Non-Selectable/Non-highlightable

There are two ways of doing so:

Method 1: Use Storyboard:

Method 2: Use Code:

Swift

cell.selectionStyle = UITableViewCellSelectionStyle.none

Objective-C

cell.selectionStyle = UITableViewCellAccessoryNone;