在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方法中调整宽度会起作用,但我拒绝这样做,因为我固执地认为这应该可以在接口构建器中实现,而无需编码。