【问题标题】:Three labels with the same width on the same line - how do I use autolayout?在同一行上具有相同宽度的三个标签 - 如何使用自动布局?
【发布时间】:2014-11-12 11:33:05
【问题描述】:

我想像这样在同一行放置三个标签:

|-20-<Label1>-20-<Label2>-20-<Label3>-20-|

我希望 Label1、Label2 和 Label3 大小相等并动态拉伸以适应屏幕宽度。

我尝试通过指定以下约束来做到这一点:

  • Label1:左:20,右:20,上:20,Label1.width = Label2.width = Label3.width,label1.height = lable2.height = label3.height
  • Label2:left:20(与Label1 right相同),right:20,top:20
  • Label3:left 20(与Label2 right相同),right:20,top:20

当我运行应用程序时,标签不会被拉伸以填充所有剩余空间(即整个宽度 - 4*20,其中 20 是标签之间的空间)。我希望每个标签的宽度等于(屏幕宽度 - 4* 20)/3。

我错过了什么?

Tnis 是我在 xcode 中得到的:

我希望它看起来像这样(在 Qt 中完成):

谢谢

【问题讨论】:

  • 您尝试时标签是如何布置的?
  • @KenThomases:我用截图更新了问题。
  • 抱歉,我的意思是:您在运行应用程序时实际看到的结果是什么?你说这不是你想要的,但你没有说它到底有什么不同。
  • @KenThomases:在 Qt 中完成的屏幕再次更新了问题
  • 看起来标签的位置可能正确,但文本在其中居中。您可以设置背景颜色或边框,以便查看框架的实际布局方式吗?

标签: ios7 xcode5 autolayout


【解决方案1】:

好的,我设法让它在 Xcode 6 中运行,它也可以在 xcode 5 中运行。

我定义了以下约束:

  • Label1:left:相对于superview的水平空间20,top:相对于superview的垂直空间35,width = superview.width * 1:3 + -26
  • 标签2:左:相对于标签1的水平间距20,宽度:等于label1的宽度,中心y = label1中心y
  • 标签3:左:相对于标签2的水平间距20,宽度:等于label1的宽度,中心y = label1中心y

优先级都是一样的。

每当我更改手机方向时,标签都会正确拉伸。

【讨论】:

    猜你喜欢
    • 2014-12-22
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    相关资源
    最近更新 更多