Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to give space between two cells in tableview?

I want a space between two cell in table view,

I want cell like this,

enter image description here

How can i do that?

like image 225
Ankit Chauhan Avatar asked Aug 25 '11 11:08

Ankit Chauhan


People also ask

How do you insert a space between cells in tableView?

The way I achieve adding spacing between cells is to make numberOfSections = "Your array count" and make each section contains only one row. And then define headerView and its height. This works great.

How do you expand a tableView cell in swift 5?

detailsTableView will be our UITableView. We need to register our cell and set the dataSource and delegate of UITableViewDelegate and UITableViewDatasource. For convenience we will just add an estimatedRowHeight at 100 and automaticDimension of rowHeight so the height will be equals the content of the cell.


2 Answers

you can't set distance between cells directly, but you can set the height for header in section to achieve the same result.

1.set the numbers of cell you need as sections:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  {     return 3; // in your case, there are 3 cells } 

2.return only 1 cell for each section

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {     return 1; } 

3.set the height for header in section to set space between cells

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {     return 10.; // you can have your own choice, of course } 

4.set the header's background color to clear color, so it won't look weird

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {     UIView *headerView = [[UIView alloc] init];     headerView.backgroundColor = [UIColor clearColor];     return headerView; } 
like image 137
Brian Avatar answered Sep 20 '22 14:09

Brian


The Best way to get space between two cells in TableView, declare the numbers of sections you want in delegate method of numberofsections this way

For example you have array of 10 objects

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {   return [array count]; //array count returns 10 }  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {       return 1;// this should be one because it will create space between two cells if you want space between 4 cells you can modify it. } 

Then the important point is in cellForRowAtIndexPath delegate method you need to use indexpath.section but not indexpath.row

cell.textLabel.text=[NSString stringWithFormat:@"%@",[array objectAtIndex:indexPath.section]]; 

That is is check your tableview for the space between two cells. Enjoy!

like image 29
obaid Avatar answered Sep 19 '22 14:09

obaid