Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift:自动布局-文本列-删除尾随和前导警告_Swift_Autolayout_Uilabel - Fatal编程技术网

Swift:自动布局-文本列-删除尾随和前导警告

Swift:自动布局-文本列-删除尾随和前导警告,swift,autolayout,uilabel,Swift,Autolayout,Uilabel,我有两列文字。左侧锚定在顶部、左侧和底部,右侧则相反。这仍然会生成前导和尾随警告。如何连接两列的行以告诉Auto Layout仅扩展中间的空间?当您确切地知道要将哪些文本放入这些标签时,故事板/界面生成器(IB)不知道 所以这对你来说很好: 但是。。。如果“日期”文本更改为“您想什么时候开始?”,会发生什么情况: 因为我们没有在两个标签之间设置约束,所以它们是重叠的 因此,让我们对两个“行”执行相同的操作,但是,在标签之间添加一个8的尾随到前导约束: 我们已经阻止了重叠,但现在我们看到了一

我有两列文字。左侧锚定在顶部、左侧和底部,右侧则相反。这仍然会生成前导和尾随警告。如何连接两列的行以告诉Auto Layout仅扩展中间的空间?

您确切地知道要将哪些文本放入这些标签时,故事板/界面生成器(IB)不知道

所以这对你来说很好:

但是。。。如果“日期”文本更改为“您想什么时候开始?”,会发生什么情况:

因为我们没有在两个标签之间设置约束,所以它们是重叠的

因此,让我们对两个“行”执行相同的操作,但是,在标签之间添加一个
8
的尾随到前导约束:

我们已经阻止了重叠,但现在我们看到了一个新问题(IB将警告您)哪个标签应该被压缩?IB(和运行时的自动布局)将自己做出决定,这可能不是您想要的,并且类似布局之间可能不一致

为了解决这一问题,我们为我们不希望压缩的标签提供了更高的内容压缩优先级

下面是结果-顶部“行”的左侧标签默认值为750,右侧标签默认值为751,底部“行”的左侧标签默认值为751,右侧标签默认值为750:

它看起来与“C”相同,但我们不再有来自IB的错误/警告


因此,即使您知道两列中的文本永远不足以重叠,IB也会鼓励您提供足够的约束(和优先级设置),以确保您得到想要的内容。

即使我也不明白您所说的“只是扩大中间的空间”是什么意思。我不确定AutoLayout如何理解您想要的内容。。。警告消息到底是什么?如果没有看到具体的警告,我只能猜测它们涉及固有宽度,并且根据标签的内容,可能存在重叠列。你应该(以某种方式)完全定义事物。一个特定的宽度,一个小于或等于宽度的宽度,甚至可能优先考虑某件事。看看你的截图,为什么左上角两个标签的宽度不同?这是因为它们的固有宽度。警告是:缺少尾部约束,这可能会导致与其他视图重叠。这完全有道理。B项-我可以通过U/I添加“尾随到前导”约束吗?谷歌搜索的大多数答案似乎都是指按程序进行的。我可以分别添加尾随和前导,但你写这个词的方式似乎意味着有一个综合选项。如果我这样做的话,改变优先权仍然会给我留下红色的警告线。我还希望改变内容优先权。非常感谢,这已经让我逃避了好几天了。@EdwardHasted-在故事板中,Ctlr从左标签拖动到右标签。从弹出窗口中选择
水平间距
。它将默认为当前距离,因此编辑该新约束并将常量更改为8(或标签之间所需的空间)。再次感谢您提供了这样一个布局良好的解释。