我有2个UILabel用于记分应用程序(Home和Away)。用户可以点击Home或Away,并将标签更改为他们喜欢的任何内容。这一切都很好。当用户输入的名称大于标签大小时,它会缩小字体以适应。这使得2个标签的字体大小不再匹配,并且看起来不正确。我的问题:如何将一个标签的字体大小设置为另一个标签“autoshrunk”的大小?
我还意识到我需要编写代码来确定两个标签之间哪个字体较小,并将它们都设置为该数字。只要我得到上述问题的答案,我认为我不会有问题。看起来应该很简单,但到目前为止我还是没有。
答案 0 :(得分:0)
所以我希望你知道两个标签的帧大小。
使用– sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:查找它将使用的最小字体大小。
如果您有任何疑问,请告诉我。
答案 1 :(得分:0)
对我来说这很好用:
- (CGFloat)actualTitleFontSize
{
NSStringDrawingContext *labelContext = [NSStringDrawingContext new];
labelContext.minimumScaleFactor = 0.2;
NSAttributedString *attributedString =
[[NSAttributedString alloc] initWithString:label.text attributes:@{NSFontAttributeName : label.font}];
[attributedString boundingRectWithSize:label.frame.size
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
context:labelContext];
CGFloat actualFontSize = label.font.pointSize * labelContext.actualScaleFactor;
return actualFontSize;
}