为啥即使在我将约束设置为 0 后 UITableView 上仍有余量

Posted

技术标签:

【中文标题】为啥即使在我将约束设置为 0 后 UITableView 上仍有余量【英文标题】:Why there is still margin on UITableView even after I set constrain to 0为什么即使在我将约束设置为 0 后 UITableView 上仍有余量 【发布时间】:2015-05-08 13:41:13 【问题描述】:

我刚买了一本书,正在学习用 Swift 编写 ios。我想创建一个像 snapchat 这样的表格视图列表:

然后我将 UITableView 的所有约束设置为0:

但是,表格的左边还有一个边距,为什么?

【问题讨论】:

可能重复***.com/questions/25762723/… 【参考方案1】:

点击UITableView后在界面生成器中搜索分隔符插入

并将其更改为自定义。现在您可以将 Left Inset 设置为 0

目标-C

viewDidLoad

[tableView setSeparatorInset:UIEdgeInsetsZero];

cellForRowAtIndexPath:中添加以下代码

if ([cell respondsToSelector:@selector(preservesSuperviewLayoutMargins)])
    cell.layoutMargins = UIEdgeInsetsZero;
    cell.preservesSuperviewLayoutMargins = false;

斯威夫特

if ([UITableView instancesRespondToSelector:@selector(setLayoutMargins:)]) 
    [[UITableView appearance] setLayoutMargins:UIEdgeInsetsZero];
    [[UITableViewCell appearance] setLayoutMargins:UIEdgeInsetsZero];
    [[UITableViewCell appearance] setPreservesSuperviewLayoutMargins:NO];

【讨论】:

【参考方案2】:

正如@Ashish Kakkad 所指出的,这是关于SeparatorInsets,我只是想在这里添加,您也可以在Storyboard 中设置它们,您不必在代码中执行此操作。

点击表格视图后在界面生成器中搜索分隔符插入

并将其更改为Custom。现在您可以将左插图设置为0

【讨论】:

也许只是在您的答案中包含我的屏幕以及 Ashish 以供此页面的未来访问者使用? 好的。然后我会将您的答案添加到我的答案中。谢谢!但不要删除你的答案。 @NilsZiehn

以上是关于为啥即使在我将约束设置为 0 后 UITableView 上仍有余量的主要内容,如果未能解决你的问题,请参考以下文章

Android 每次都会询问我要使用哪个应用程序,即使在我将我的应用程序设置为默认应用程序之后也是如此。为啥?

即使我将应用程序清单设置为纵向,为啥我的 Android 相机预览仍显示横向?

为啥 Interface Builder 不能为约束设置负倍数,即使 [NSLayoutConstraint constraintWithItem:] 可以?

在我将编译器设置设置为支持 c++11 后,我仍然收到错误“stoi”未声明。为啥? [复制]

当我将“translatesAutoresizingMaskIntoConstraints”设置为 true、ChangeSizesInRunTime 时,为啥会出现约束中断?

为啥在我设置它们后获取的数据不填充状态?