【问题标题】:UILabel vertical size is larger using font scaling, extra padding insertedUILabel 垂直尺寸使用字体缩放更大,插入了额外的填充
【发布时间】:2016-01-15 13:02:16
【问题描述】:

在多行 UILabel 上使用字体缩放时,内部内容大小会根据需要变大

如何获得更好的合身尺寸?

【问题讨论】:

  • 你想要的结果是什么?
  • 删除第二个标签的顶部/底部填充,并具有更适合内容的尺寸

标签: ios cocoa-touch autolayout uilabel


【解决方案1】:
@implementation UILabel (dynamicSizeWidth)

- (void)resizeToStretch  {
    float width = [self expectedWidth];
    CGRect newFrame = [self frame];
    newFrame.size.width = width;
    [self setFrame:newFrame];
}

- (float)expectedWidth{
    [self setNumberOfLines:1];

    CGSize maximumLabelSize = CGSizeMake(CGRectGetWidth(self.bounds), CGFLOAT_MAX);

    CGSize expectedLabelSize = [[self text] sizeWithFont:[self font] 
                                            constrainedToSize:maximumLabelSize
                                            lineBreakMode:[self lineBreakMode]]; 
    return expectedLabelSize.width;
}

@end

在 iOS6 之外,您可以使用 Autolayout,将行数设置为 0,然后框架会适当地调整您的标签大小以适合您的文本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2019-11-16
    • 1970-01-01
    相关资源
    最近更新 更多