如果我在Xcode中创建UITableViewController
,例如通过文件→新建项目...→iOS→主从应用程序,则创建UITableView
原型细胞。
生成的视图层次结构为:
左边"边距"在Cell的内容UIView
左边缘和"标题"之间自动创建。文本的UILabel
元素如下所示为橙色。
这会在设备的屏幕边缘和运行时的UILabel
文本之间产生相应的余量:
那么,这个间隙的宽度设置在哪里,以及如何调整?
UILabel的Size Inspector中的控件显示为灰色:
我首选的选项是能够在Interface Builder中设置此差距的宽度,但我还想了解这个差距的设置位置,以及如何以编程方式更改它。
答案 0 :(得分:48)
您只需要设置表视图的contentInset
属性。您可以根据需要设置值。
<强> self.tableView.contentInset = UIEdgeInsetsMake(0, -15, 0, 0);
强>
输出结果
答案 1 :(得分:36)
从 iOS 8 开始,单元格属性layoutMargins
可用。
因此,调整单元格边距的正确方法是以这种方式在tableView:cellForRowAtIndexPath
或自定义UITableViewCell
中设置此属性:
override func awakeFromNib() {
super.awakeFromNib()
self.layoutMargins = UIEdgeInsetsZero //or UIEdgeInsetsMake(top, left, bottom, right)
self.separatorInset = UIEdgeInsetsZero //if you also want to adjust separatorInset
}
我希望这可以帮助别人。
答案 2 :(得分:36)
转到Main.storyboard&gt;选择UITableViewCell&gt;属性检查员。将分隔符下拉列表从默认插入更改为自定义插入。将左侧插图从15更改为0
答案 3 :(得分:8)
只需在代码中添加方法,如下面链接
中所述我想提到的方法是
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[tableView setLayoutMargins:UIEdgeInsetsZero];
}
if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {
cell.preservesSuperviewLayoutMargins = NO;
[cell setLayoutMargins:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setSeparatorInset:)]){
[cell setSeparatorInset:UIEdgeInsetsZero];
}
}
答案 4 :(得分:6)
在TableView&#34;属性检查器&#34;将分隔符插入设置为&#34;自定义&#34;左= 0。 这就是你所要做的一切!
答案 5 :(得分:4)
正如WTIFS所提到的,UITableViewCell
的{{1}}属性是在内置单元格样式中缩进文本标签的好方法。只需做这样的事情就可以获得漂亮的左边距:
indentation
然而,这不适用于imageView。
答案 6 :(得分:1)
答案 7 :(得分:0)
我想我想出了一个简单的解决方案。大声笑。
最佳答案有一些问题......它减少了左边的差距,但产生了正确的差距。
我在Interface Builder中使用了约束。
首先在表格视图中添加 -15左边距约束。
然后在表格单元格中添加一些缩进以使内容看起来更好。
↘
这里有一些循序渐进的照片:
添加约束。请记住取消选中&#34;与最近邻居的间距&#34;。
表格单元格将向左移动。但似乎距离保证金太近了。
因此,选择表格单元格,并在右侧区域添加一些缩进。
答案 8 :(得分:0)
如果您只想更改单元格文本标签的左边距,则根据所需的填充将Horizontal Space Constraint 'Constant'
更改为16或8(这是在nib文件中)。如果你不能进入'常量'选择标签,在FrameRectangle视图中更改x坐标,然后单击左侧的约束引脚)
答案 9 :(得分:0)
这是Chetan的答案的快速版本:
{{1}}