UILable
1)换行处理
label.numberOfLines = 0;
1》 若是从http上请求的换行失败可以用\n处理
2》多行文本自适应
//返回固定宽度和固定字体大小内的高度
- (CGFloat)heightWithFont:(UIFont*)font withLineWidth:(NSInteger)lineWidth
{
CGSize size = [self sizeWithFont:font
constrainedToSize:CGSizeMake(lineWidth, CGFLOAT_MAX)
lineBreakMode:NSLineBreakByTruncatingTail];
return size.height;
}
//返回固定宽度和固定字体大小内的宽度
- (CGFloat)widthWithFont:(UIFont *)font withLineHeight:(NSInteger)lineHieght
{
CGSize size = [self sizeWithFont:font constrainedToSize:CGSizeMake(CGFLOAT_MAX, lineHieght) lineBreakMode:NSLineBreakByTruncatingTail];
return size.width;
}
-(void) text
{
NSString *displayStr = @"这是要在lable上显示的字符串一呀咿呀呦";
//这是设置lable字体的大小
UIFont *strfontSize = [UIFont systemFontOfSize:16.0f];
//withLineWidth 设置显示的宽度
CGFloat height = [self heightWithFont:strfontSize withLineWidth:130];
//withLineHeight 设置显示的高度
CGFloat width = [self widthWithFont:strfontSize withLineHeight:60];
}
/*
CGFLOAT_MAX(显示内容的最大限度
size返回的height,weight为折行后需要的宽度和高度
NSLineBreakMode介绍:
NSLineBreakByWordWrapping = 0, // 以单词为单位换行,以单词为单位截断,默认
NSLineBreakByCharWrapping, // 以字符为单位换行,以字符为单位截断
NSLineBreakByClipping, // 以单词为单位换行。以字符为单位截断
NSLineBreakByTruncatingHead, // 在截断行头: "...wxyz"
NSLineBreakByTruncatingTail, // 末尾显示...: "abcd..."
NSLineBreakByTruncatingMiddle // 中间显示...: "ab...yz"
*/
3》单行根据字体大小获得高度宽度
UILabel *lab=[[UILabel alloc] init];
UIFont* theFont = [UIFont systemFontOfSize:14];
[lab setFont:theFont];
[lab setText:@"显示的text"];
[lab sizeToFit];// 显示文本需要的长度和宽度
int height=lab.frame.size.height;
int with=lab.frame.size.width;
4》单行根据字数自动调整字体大小
[lab setAdjustsFontSizeToFitWidth:YES];