计算字符长度

来源:互联网 发布:plc编程学习资料 编辑:程序博客网 时间:2024/06/06 03:38

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

@interface CustomSize : NSObject


+ (CGSize)returnSize:(NSString *)str font:(UIFont *)font;

+ (CGSize)returnSize:(NSString *)str fontSize:(CGFloat)fontSize;

+ (CGFloat)adaptionHeight:(NSString *)str

                          size:(CGFloat)number

                         width:(CGFloat)width;


+ (CGFloat)heightForText:(NSString *)text andFontSize:(UIFont *)font;

@end

#import "CustomSize.h"


@implementation CustomSize


#pragma mark---获取字符串的长度

+ (CGSize)returnSize:(NSString *)str fontSize:(CGFloat)fontSize{

    UIFont *font = [UIFont systemFontOfSize:fontSize];

    return [CustomSize returnSize:str font:font];

}


+ (CGSize)returnSize:(NSString *)str font:(UIFont *)font{

    

    CGSize size = [str sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, nil]];

    return size;

}

//根据文字大小自动生成height

#pragma mark---根据文字大小自动生成height

+ (CGFloat)adaptionHeight:(NSString *)str

                          size:(CGFloat)number

                         width:(CGFloat)width{

    NSDictionary *infoTextDic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:number],NSFontAttributeName, nil];

    CGRect infoTextRect = [str boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine attributes:infoTextDic context:nil];

    CGFloat heingt = infoTextRect.size.height;

    return heingt;

}

+ (CGFloat)heightForText:(NSString *)text andFontSize:(UIFont *)font

{

   //设置计算文本时字体的大小,以什么标准来计算

    NSDictionary *attrbute = @{NSFontAttributeName:font};

    return [text boundingRectWithSize:CGSizeMake(ScreenWidth, 1000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attrbute context:nil].size.height;

}


@end



0 0
原创粉丝点击