【问题标题】:Xcode 5: How to align 2 object horizontally using Autolayout in IB?Xcode 5:如何在 IB 中使用 Autolayout 水平对齐 2 个对象?
【发布时间】:2014-07-01 23:43:17
【问题描述】:

我有一个UIImageView 和一个UILabel,它们以固定间距(比如说 10pt)并排放置。 UILabel's 宽度可能会动态变化。是否可以像下面一样将它们水平居中对齐?

|    @ Abc    |
|             |
|             |

|   @ Abcde   |
|             |
|             |

【问题讨论】:

  • 标签是哪一个?图像视图?能不能放个清晰的图
  • "@" 是 imageView,"Abc" 是标签。 *标签的文字可能会改变。

标签: ios xcode alignment autolayout


【解决方案1】:

将它们放在这样的视图中:

|<-- center view  -->|
|  ________________  |
| |       View     | |
| |_______   ______| |
| | Image | | Label| |
| |_______| |______| |
| |________________| |
|                    |

然后水平居中视图。在视图中,您需要为图像视图和标签定义约束,以便它们定义视图的高度和宽度。

编辑 这里有两张图片显示它有效:

【讨论】:

  • 谢谢 Jens,但我真的是,imageView 的左边距和标签的右边距应该在同一距离。
  • 是的,您可以将图像视图设置为与包含视图的前导距离为 0,并将标签设置为与包含视图的训练距离为 0。视图将始终居中 - 因此视图确实应该与两侧具有相同的距离,并且由于图像视图和标签正好位于视图的边缘,它们也将具有相同的距离......
  • 是的,它可以使它们居中,但图像和标签被拉开。我试图调整优先级,但没有成功。
  • 为什么图片和标签会被拉开?您是否在视图上设置了前导和尾随约束?你不应该。只是居中。然后视图应该有一个足够大的宽度来包含图像和标签。
  • 是的,我确实为容器添加了“Center X Alignment”。由于 imageView 到容器的前导空间为 0,而标签到容器的尾随空间为 0。虽然我在 imageView 和标签之间添加了水平间距,但两个对象都被拉到了容器的边缘。
【解决方案2】:

将 UILabel 的文本对齐设置为居中。然后将其移动到视图的中心,以便在 UILabel 的中心出现一条引导线。 对不起,小姐明白你的意思, 更新中... 按住 command 键同时选择标签和图像,然后将它们移动到与中心引导线对齐。

【讨论】:

  • 嗯……那是静态的。我的意思是这就像一个详细的视图控制器,其中“Abc”是页面的标题。标题旁边总是有一个图标。所以标题会有所不同。
  • @Andre 由于标签文本会改变它的长度,因此很难始终同时居中图像和标签,除非您计算标签长度并通过代码进行调整。但您始终可以仅将标签居中并将图像放在标签的固定左侧位置。
猜你喜欢
  • 2014-01-24
  • 2017-08-14
  • 1970-01-01
  • 2013-11-17
  • 2021-08-25
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多