美文网首页
计算文本高度的俩种方法

计算文本高度的俩种方法

作者: 牛程程 | 来源:发表于2017-12-03 21:58 被阅读0次

通过字符串计算和文本属性计算文本高度。
- (NSRect)boundingRectWithSize:(NSSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary<NSAttributedStringKey, id> *)attributes;

可以放在工具类中,便于复用。

-(CGSize)configureTextSizeWithString:(NSString *)string WithFont:(NSFont *)font WithSize:(CGSize)maxSize
{
    if (string == nil)
    {
        NSLog(@"%s , 计算文本为空。",__func__);
        return CGSizeZero;
    }
    CGRect stringRect;
    stringRect = [string boundingRectWithSize:maxSize
                                      options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
                                   attributes:@{
                                                          NSFontAttributeName:font  //可以添加其它文本属性
                                                        }
                                      context:nil];
    return stringRect.size;
}

通过视图计算文本高度。
- (CGSize)sizeThatFits:(CGSize)size;

{
    if (view == nil)
    {
        NSLog(@"%s , 计算文本的视图为空。",__func__);
        return CGSizeZero;
    }
    CGSize fitSize ;
    fitSize = [view sizeThatFits:maxSize];//sizeThatFits 在maxSize的范围内,计算出最优的size,不会改变maxSize。
                                          //sizeToFit会计算出最优的size,而且会改变自己的size。
    
    return fitSize;
    
}

相关文章

网友评论

      本文标题:计算文本高度的俩种方法

      本文链接:https://www.haomeiwen.com/subject/eefzbxtx.html