0108--/** * 根据最大尺寸和字体计算文字的实际尺寸 */

  1. .h
  2. #import <UIKit/UIKit.h>

     

    @interface NSString (Extension)

    /**

     *  根据最大尺寸和字体计算文字的实际尺寸

     */

    - (CGSize) sizeWithMaxSize:(CGSize) maxSize andFont:(UIFont *) font;

     

    @end

  3. .m
  4.  #import "NSString+Extension.h"

     @implementation NSString (Extension)

     - (CGSize)sizeWithMaxSize:(CGSize)maxSize andFont:(UIFont *)font

    {

       return  [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil].size;

    }

     @end

  5. 例子:
  6. //  计算文本按钮的frame

    //  先计算文本所占大小

        CGFloat maxTextW = screenW - iconW - margin * 3 - textPadding * 2;

        CGSize maxSize = CGSizeMake(maxTextW, CGFLOAT_MAX);

    //  字体

        CGSize textSize = [message.text sizeWithMaxSize:maxSize andFont:textFont];

     

  7. 2016 01 19  
  8. -(CGSize)checTheStringWithHight:(NSString *)theStr font:(float)font
    {
    // CGSize titleSize = [theStr sizeWithFont:[UIFont systemFontOfSize:font] constrainedToSize:CGSizeMake(SCREEN_WIDTH-40, MAXFLOAT) lineBreakMode:NSLineBreakByCharWrapping];
    //
    //


    // return titleSize;

    CGSize sixx= [theStr boundingRectWithSize:CGSizeMake(SCREEN_WIDTH-40, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil].size;
    return sixx;

    }

  9.     

原文地址:https://www.cnblogs.com/gzz2016/p/5113585.html