在一个全宽UIView

时间:2015-05-08 18:44:45

标签: ios uiview autolayout interface-builder

我的布局中有一个UIView固定在VC的两侧。在其中,我有一个图标UIImageView和旁边的UILabel。无论标签内部的文本有多长,我希望这两个都在UIView内对齐。 (类似于如何使用text-align:center;在CSS中对齐图像和文本中心)。

|          UIView         |
|                         |
|                         |
|                         |
|     |image| |label|     |
|                         |
|                         |
|                         |
|                         |

有时标签可能很长,但我仍然需要它们居中:

|          UIView         |
|                         |
|                         |
|                         |
|  |img| |label is long|  |
|                         |
|                         |
|                         |
|                         |

enter image description here enter image description here

我知道如何使用Autolayout,但是由于我无法创建“持有者”UIView并将其置于中心位置,因此我难以理解。我需要一些帮助来确定在IB中添加的约束。

想法?

3 个答案:

答案 0 :(得分:5)

在@Mahmoud Adam的回答基础上,我们可以在故事板中完全做到这一点。

  1. 水平和垂直对齐UIView相对于其超级视图。
  2. UIImageUILabel添加约束,以便将它们固定到UIView的边缘。
  3. UIView会随着UIImageUILabel的增长而增长。

答案 1 :(得分:3)

在主视图中创建一个新的UIView并将UUImageViewUILabel放入其中,此视图应具有以下约束

使用界面构建器

  1. 主视图内的水平对齐
  2. 主视图内的垂直对齐(现在与imageView相同)
  3. 使用视图控制器中的代码

    1. width = image.width + label.width + imageView&之间的水平空间标签
    2. height = Max(image.height,label.height)

答案 2 :(得分:1)

我猜这很简单......使用故事板......

如果您还没有找到解决方案......请检查此图片并按照...

此处...图片中的绿色背景为UIView

enter image description here

我从update constraints

中选择resolve autolayout views进行观看