具有自动收缩文本高度的UILabel autolayout工作正常,但水平宽度不匹配

时间:2016-02-04 21:57:09

标签: ios autolayout

在Interface Builder中,我使用一堆UILabel设置了一个UITableViewCell xib。然后,根据公认的惯例,我为每个文本或UILabelField设置:

'number of lines' = 0, 
'autoshrink' = 'minimum font size',
'minimum font size' = something small (e.g.9), 
'font size' = something huge (e.g. 90),
constrain the height to a proportion of the superview height, 
set the 'clip subviews' to true, 
and 'Line Break' to 'word wrap'.

垂直高度完全按照我的预期调整。但是,无论我如何设置水平内容拥抱优先级,字段的宽度都与大字体提供的内在内容大小相匹配。

如果文本完全符合要求,您可能想知道为什么这很重要。

我还使用水平间距约束将元素定位在这些文本或标签视图的右侧。约束条件查看左侧元素的水平内在内容大小,因此它们将尾随元素一直推到右侧(在视图边缘之外)。

如何根据字体大小的自动收缩值获取(标签,文本等)视图的水平宽度以跟随文本宽度?

我想在视图控制器的viewDidAppear方法中调整宽度会起作用,但我拒绝这样做,因为我固执地认为这应该可以在接口构建器中实现,而无需编码。

0 个答案:

没有答案