我正在使用约束,直到现在还可以。
我有一个tableview,每行有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
答案 0 :(得分:0)
想出来了!
向最左边的标签添加宽度解决了这个问题。
因为我从一开始就不知道标签的宽度,所以我使用leftlabel.intrinsicContentSize()
来获取宽度,并添加了另一个具有此宽度的约束。