使用Autolayout在UIView内部水平居中UILabel + UIImageView

时间:2015-09-30 20:36:37

标签: ios autolayout interface-builder swift2 ios9

第一个问题:

我的UILabel包含UIImage(动态文字)+ UIView。我希望它们在blockSmallz.x = startPosition.x; blockSmallz.y = startPosition.y; 内居中。就像这些图片一样:

enter image description here

enter image description here

答案here已过时,现在我们有了堆栈视图,也许它可以让任务变得更容易。

第二个问题:

我有三个UIView彼此相邻,每个都有UIImageView + UILabel,它们应该在它们的容器中居中(问题1)。在具有小宽度屏幕的iPhone 4s中,文本会破坏布局,如下图所示:

enter image description here

我使用Xcode 7.0 |目标iOS8及以上版本|斯威夫特2

3 个答案:

答案 0 :(得分:2)

在没有代码的纯Autolayout / IB中,这实际上非常容易。它最终看起来像这样: enter image description here

这是带有视图的故事板文件,因此您可以轻松查看约束。它使用相同的子视图包装技术,但是根据需要使标签缩小/剪切的技巧是在包装器视图的两侧添加> = 0约束,使其不会扩展到父视图的边界之外,反过来使标签不再增长。

https://www.dropbox.com/s/ml67zdjwugf8jco/SO_Solution-20151013.storyboard?dl=0

答案 1 :(得分:0)

清洁包含并再次添加。我在Xcode 7.0中遇到了这个问题,但它在Xcode 7.0.1中显然得到了解决。

答案 2 :(得分:0)

  
      
  1. 使用按钮(而不是使用ImageView& Label)并设置适当的图像&标题。
  2.   
  3. 设置图片&标题插图
  4.   
  5. 添加到查看和指定领先空间& superview约束的底部空间到第一个按钮
  6.   
  7. 指定尾随空格&超视图约束的底部空间到第三个按钮
  8.   
  9. 指定左侧水平空间(带第一个按钮)&右侧水平空间(带第三个按钮)到第二个按钮。
  10.   
  11. 添加相等宽度&使用所有三个按钮修复高度约束。
  12.         

    另外,您可以添加宽度约束并使其具有动态宽度。

         

    在排序中,您可以使用按钮完成它。