setSeparatorInset:和setLayoutMargins:以及setPreservesSuperviewLayoutMargins:

1、关于setSeparatorInset:的使用
用于设置表格单元格的分界线和单元格内容的位置,实际视图布局并未发生变化。
官方的解释:单元格内容的插入值。
您可以使用此属性在当前单元格的内容与表格的左右边缘之间添加空格。 正值意味着将单元格内容和单元分界向内移动并远离表边缘。 将负值视为inset设置为0。
仅左右插入值有效; 顶部和底部插入值将被忽略。

 [cell setSeparatorInset:UIEdgeInsetsMake(0, 10, 0, 10)];

2、关于setLayoutMargins:的使用
用于设置实际视图布局,
官方解释:在视图中布局内容时使用的默认间距。
在iOS 11及更高版本中,使用directionalLayoutMargins属性指定布局边距而不是此属性。在directionalLayoutMargins属性中, leading 、trailing edge insets与 left 、right inset 是同步的,例如将leading方向边缘插入设置为20个点会使得在使用从左到右风格语言的系统上将此属性的left 插入设置为20个点。对于根视图控制器,该属性的默认值反映系统最小边距和安全区域插入,对于视图层次结构中的其他子视图,默认布局边距通常为每边8个点,但如果视图未完全位于安全区域内或者preservesSuperviewLayoutMargins属性为YES,则值可能更大。

[cell setLayoutMargins:UIEdgeInsetsMake(10, 10, 10, 10)];

3、setPreservesSuperviewLayoutMargins:的使用
官方解释:一个布尔值,表示当前视图是否也遵从其父视图的边距。
当此属性的值为YES时,在布置内容时也会考虑父视图的边距。 此边距会影响视图边缘与其父视图之间的距离小于相应边距的布局。 例如,您可能有一个内容视图,其框架精确匹配其父视图的边界。 当父视图的任何边距位于内容视图所代表的区域内和它自己的边距内时,UIKit会调整内容视图的布局以尊重父视图的边距。 调整量是确保内容也在父视图的边距内所需的最小量。
此属性的默认值为NO。

[cell setPreservesSuperviewLayoutMargins:NO];

你可能感兴趣的:(setSeparatorInset:和setLayoutMargins:以及setPreservesSuperviewLayoutMargins:)