删除 UITableViewCell 上的填充
Posted
技术标签:
【中文标题】删除 UITableViewCell 上的填充【英文标题】:Remove padding on UITableViewCell 【发布时间】:2011-04-24 07:03:06 【问题描述】:在带有UITableViewCellStyleSubtitle
样式的UITableViewCell
上,我设置了imageView.image
、textLabel.text
和detailTextLabel.text
。单元格周围有白色填充物。如何摆脱填充,以便我的所有图像像下面的 Youtube 应用程序一样相互接触?
【问题讨论】:
您应该将@Borut 的答案标记为有效的答案,因为它更简单,也是您问题的主要原因。 在这上面浪费了一整天!这个解决方案也对我有用:***.com/questions/19103155/… 【参考方案1】:可能最简单的方法是继承UITableViewCell
并覆盖-layoutSubviews
方法以执行以下操作:
- (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
【讨论】:
这种方法效果很好。有时它还需要在子视图上调用 layoutSubviews,尤其是在调整宽度或高度时。【参考方案2】:只需删除表格分隔符:
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
【讨论】:
很好的解决方案!谢谢!【参考方案3】:在ios8中可以设置
tableView.layoutMargins = UIEdgeInsets.zero
在代码中,或来自 Interface Builder。
【讨论】:
【参考方案4】:尝试在界面生成器或代码中减少 UITableView 的行高,以便没有填充。 我不得不增加我在 tableview 的界面构建器中这样做的填充。 但是 Daves 的回答可能会让您更好地控制修改单元格视图。
【讨论】:
以上是关于删除 UITableViewCell 上的填充的主要内容,如果未能解决你的问题,请参考以下文章
为子类 UITableViewCell 上的披露按钮设置目标
Xcode UI 测试:UITableViewCell 上的辅助功能查询失败