您的位置:首页 > 产品设计 > UI/UE

(iPhone/iPad开发)根据文本的字数自动调整UILabel的宽高

2011-12-29 01:04 591 查看
NSString * myText = [NSString stringWithString:@"some text"];

//获取到文本大大小

CGFloat constrainedSize = 265.0f; //其他大小也行

UIFont * myFont = [UIFont fontWithName:@"Arial" size:19]; // UILabel使用的字体

CGSize textSize = [myText sizeWithFont: myFont

constrainedToSize:CGSizeMake(constrainedSize, CGFLOAT_MAX)

lineBreakMode:UILineBreakModeWordWrap];

textSize.width

textSize.height

即为UILable的宽和高,

CGRect
labelFrame = CGRectMake (0, 0, textSize.width, textSize.height);

UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];

即可用到

工整一些做法:

//计算文本所占高度
//2个参数:宽度和文本内容
-(CGFloat)calculateTextHeight:(CGFloat)widthInput Content:(NSString *)strContent{
CGSize constraint = CGSizeMake(widthInput, 20000.0f);
CGSize size = [strContent sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
CGFloat height = MAX(size.height, 44.0f);
return height;
}

//计算 宽度
-(CGFloat)calculateTextWidth:(NSString *)strContent{
//    CGSize constraint = CGSizeMake(heightInput, heightInput);
CGFloat constrainedSize = 26500.0f; //其他大小也行
CGSize size = [strContent sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:CGSizeMake(constrainedSize, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
//    CGFloat height = MAX(size.height, 44.0f);
return size.width;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: