【问题标题】:Swift - Autolayout 3 views with dynamic widthsSwift - 具有动态宽度的自动布局 3 个视图
【发布时间】:2016-03-11 01:44:12
【问题描述】:

我正在处理约束,到目前为止一切正常。

我有一个表格视图,每行有 3 个标签。这 3 个标签的内容是动态的,所以我需要这些标签的宽度也是动态的。 问题是,如果需要以完整字体大小显示左侧标签和中间标签的全部内容,我希望最右侧的标签缩小。

右标签设置为adjustsFontSizeToFitWidth = true 所以如果需要字体会缩小,其他标签有固定的字体大小。 这是我到目前为止所拥有的 -

MainView.addConstraint(NSLayoutConstraint(item: leftlabel,
                                          attribute: .Left,
                                          relatedBy: .Equal,
                                          toItem: MainView,
                                          attribute: .Left,
                                          multiplier: 1,
                                          constant: 15))
MainView.addConstraint(NSLayoutConstraint(item: midlabel,
                                          attribute: .Left,
                                          relatedBy: .Equal,
                                          toItem: leftlabel,
                                          attribute: .Right,
                                          multiplier: 1,
                                          constant: 15))
MainView.addConstraint(NSLayoutConstraint(item: rightlabel,
                                          attribute: .Left,
                                          relatedBy: .Equal,
                                          toItem: midlabel,
                                          attribute: .Right,
                                          multiplier: 1,
                                          constant: 15))
MainView.addConstraint(NSLayoutConstraint(item: rightlabel,
                                          attribute: .Right,
                                          relatedBy: .Equal,
                                          toItem: MainView,
                                          attribute: .Right,
                                          multiplier: 1,
                                          constant: 15))

实际发生的情况是最左边的标签宽度正在缩小,我看不到里面的整个文本,而是看到一些文本和几个字母后的 3 个点。

我想要的另一件事是,即使有“空白”(例如,如果 3 个标签内的文本比主视图宽度短),中间标签也将始终位于左侧标签旁边。

见下图: In the first two rows you can see what I want, and in the last row is what happens

【问题讨论】:

    标签: ios swift autolayout


    【解决方案1】:

    想通了!

    向最左边的标签添加宽度解决了这个问题。

    因为从一开始就不知道标签的宽度,所以我用leftlabel.intrinsicContentSize()来获取宽度,并用这个宽度添加了另一个约束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多