JoJo
JoJo

Reputation: 20115

Remove padding on UITableViewCell

On a UITableViewCell with UITableViewCellStyleSubtitle styling, I'm setting the imageView.image, textLabel.text, and detailTextLabel.text. There's white padding all around the cell. How do I get rid of the padding so all my images touch each other like the Youtube app below?

Upvotes: 3

Views: 8044

Answers (4)

Hans Terje Bakke
Hans Terje Bakke

Reputation: 1761

In iOS8 you can set

tableView.layoutMargins = UIEdgeInsets.zero

in code, or from Interface Builder.

Upvotes: 2

Borut
Borut

Reputation: 8138

Just remove table separator:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

Upvotes: 2

Sandy
Sandy

Reputation: 11

Try reducing the UITableView's row height in interface builder or code so that there is no padding. I had to increase the padding i did so in the interface builder for the tableview. However Daves answer might give you more control over modifying the cell view.

Upvotes: 1

Dave DeLong
Dave DeLong

Reputation: 243156

Probably the easiest way to do this would be to subclass UITableViewCell and override the -layoutSubviews method to do something like this:

- (void)layoutSubviews {
  //have the cell layout normally
  [super layoutSubviews];
  //get the bounding rectangle that defines the position and size of the image
  CGRect imgFrame = [[self imageView] frame];
  //anchor it to the top-left corner
  imgFrame.origin = CGPointZero;
  //change the height to be the height of the cell
  imgFrame.size.height = [self frame].size.height;
  //change the width to be the same as the height
  imgFrame.size.width = imgFrame.size.height;
  //set the imageView's frame (this will move+resize it)
  [[self imageView] setFrame:imgFrame];

  //reposition the other labels accordingly
}

Upvotes: 8

Related Questions