您的位置:首页 > 其它

计算字符长度

2015-11-18 19:32 567 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: