什么是“约束保证金”,在故事板在Xcode 6什么是“约束保证金”,在故事板在Xcode 6(Wha

2019-05-09 10:01发布

我与自动布局和制约的工作,发现有一个Constrain to margins XCode中6这是不存在的XCode 5和默认选中的选项。

我创建了一个测试项目然后我加入UITableView上的ViewController设置为相同的尺寸视图帧和添加的约束

的XCode 6你可以在这里看到,即使tableview中具有相同的帧图的XCode建议增加-16作为约束,而5的XCode将建议增加间距0。

现在,当您取消“约束保证金”选项,它的表现一样的XCode 5和建议增加0作为约束

另外,我发现,一旦我与约束添加约束保证金检查,我不再能在XCode中5打开故事板文件,因此它肯定是新的东西在XCode中6

希望我能好好解释一下我的问题。 我想了解什么是“约束保证金”实际上做,当我应该和不应该使用它。 我道歉,如果这件事情很浅显。

编辑

我发现一些有关布局利润率这里的讨论 ,我不知道它是否与此有关。

Answer 1:

我不明白,在所有为什么的人抱怨说“ 页边距会造成什么彻底崩溃之前的iOS 8”。

在厦门国际银行文件或情节串连图板设置你的约束相对利润率不会使上iOS7您的应用程序崩溃,它不会让你的iOS7设备上的UI差别都不是,只要你不碰UIView.layoutMarginsUIView.preservesSuperviewLayoutMargins在你的代码性能。

什么是iOS8上边距

布局利润代表围绕的内部填充UIView该布局子视图当布局系统可以使用-确保的间隙的视图和一个子视图的边缘之间留下。 在这方面,非常像在CSS块相关联的padding属性。

缺省情况下, UIView具有每边8点布局余量,并且这不能在界面生成器来改变。 然而,通过设置UIView.layoutMargins中的代码,这仅是iOS8上可用的属性,你可以调整这些值。

你可以得到IB来显示与编辑>画布>显示布局矩形边缘

保证金可以用来帮助布置你的意见和子视图。 每一个UIView皆预设利润,但他们只影响视图放置在您设置关系到一个保证金的约束。

如何使用边距

在Interface Builder中使用的利润的唯一方法是在配置您的约束检查相对于保证金的选项。 这是奠定了我的看法时,你如何引导你的约束使用的利润率,而不是边缘。

让我们来看看一个视图及其子视图之间建立一个领先的约束的四种不同的方式。 对于每一个约束,我们回顾描述将是子视图领先的第一关联第二个将是上海华领先 。 要抓紧什么是支票和相对于每个约束端的保证金选项取消选中的状态,因为定义约束是否是联系在一起的保证金或视图的边缘。

  1. 第一项(选中),第二项(检查):在这种情况下,我们声明子视图的左边缘应该对齐上海华左边缘(如图所示在此图像中)。

  1. 第一项(取消),第二项(取消):两种使用边缘,而不是幅度 。 在这种情况下,我们声明子视图的左边缘应该对准上海华盈的左边缘。

  1. 第一个项目(检查),第二项(选中):在这种情况下,我们声明子视图的左边空白处应对准上海华盈的左边缘。 这种布局实际上使子视图重叠上海华。

  1. 第一个项目(检查),第二项(检查)。 这实际上有作为的情况下2相同的效果,因为这两个子视图和上海华有一个相同的默认保证金。 我们声明子视图的左边空白处应对准上海华盈的左缘。

什么是良好边距

这项新功能程序(iOS 8)只影响用户界面开发,如果你决定使用空间。

通过使用利润率可以调整,通过改变单个属性的值都有一个共同的相对于共有的上海华盈多子视图的位置。 这是在设置所有相关的约束带固定值,因为如果你需要更新所有的间距,而不是由一个不断变化的每个值一个明确的胜利,你可以同时与单行更新上海华盈的保证金修改所有相关位置这样的代码之一:

self.rootView.layoutMargins = UIEdgeInsetsMake(0, 50, 0, 0);

为了说明这一点的好处,在以下情况下,所有子视图左边缘对齐其上海华盈的左缘。 因此,改变上海华盈的左缘将影响所有子视图在同一时间。



Answer 2:

在iOS中8现在你要定义你的约束相对于预定缘至上海华的边界,而不是上海华盈的边界本身的选项。 是的,这是完全相关的,你指出,在文档的布局空间。 一个优点是,你可以重新定义你的利润动态,或不同的各种设备,以及布局将相应无需修改的约束进行更新。

当使用它:当你想利用这种新的灵活性。

当不使用它:对于任何应用程序有针对性地在iOS 7或以下运行。



Answer 3:

在UIView的属性是: layoutMargins 。 见苹果文档 。 基本上,如果布局边距是8,8,8,8(缺省值),用0导致空间容器余量将具有8。 注意的x位置,这只是iOS8上或更高版本可用的约束

对于大家谁不希望自己的约束去容器保证金:

CTRL +单击并拖动以显示约束创建弹出。

如果菜单显示了创建的约束默认情况下,保证金,按住选项/ ALT允许约束到容器,而不是容器保证金进行。

现在,它会显示不创建的约束,以保证金的选项。 这是我使用WAY更快。



文章来源: What is “Constrain to margin” in Storyboard in Xcode 6