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

计算文本高度的俩种方法

作者: 牛程程 | 来源:发表于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