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?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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
}
回答2:
Just remove table separator:
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
回答3:
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.
回答4:
In iOS8 you can set
tableView.layoutMargins = UIEdgeInsets.zero
in code, or from Interface Builder.