创建一个UILabel 对象
UILabel *otherLab = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 20)];
设置文本
otherLab.text = @"文本内容";
设置文本字体
otherLab.font = [UIFont systemFontOfSize:15]; 或 otherLab.font = [UIFont fontWithName:@"Arial" size:35];
设置文本颜色
otherLab.textColor = [UIColor redColor];
设置文本水平显示位置
otherLab.textAlignment = NSTextAlignmentCenter; //不能用otherLab.textAlignment = UITextAlignmentCenter; 因为UITextAlignmentCenter已经过期不能用
设置label是否可以显示多行,0则显示多行
otherLab.numberOfLines = 0;
根据内容大小,动态设置UILabel的宽高度
/**
* 计算文字的尺寸
*
* 参数一 text,UILabel的文字内容
* 参数二 font,文字内容的字体
* 参数三 maxSize,UILabel最大宽度和高度
*/
- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize
{
//计算昵称文字在屏幕上占据的宽度和高度(以下这方法是用来计算左右这段文字在屏幕上占据多宽和多高)
if (font == NULL)
{
return CGSizeMake(0, 0);
}else{
NSDictionary *attrs = @{NSFontAttributeName : font};
CGSize sizr = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
return sizr;
}
}
// 方法调用
//#define SCREEN_WIDTH [[UIScreen mainScreen]bounds].size.width --------宏定义 SCREEN_WIDTH 为屏幕宽度
UILabel *otherLab = [[UILabel alloc]init];
otherLab.numberOfLines = 0; //允许换行
NSString *name = @"姓名";
CGSize productNameSize = [self sizeWithText:name font:otherLab.font maxSize:CGSizeMake(SCREEN_WIDTH * 0.7, MAXFLOAT)];
otherLab.frame = CGRectMake(10, 20, productNameSize.width, productNameSize.height);
换行模式
typedef enum { UILineBreakModeWordWrap = 0, // 以空格为边界,保留整个单词 UILineBreakModeCharacterWrap, // 保留整个字符 UILineBreakModeClip, // 到边界为止 UILineBreakModeHeadTruncation, // 省略开始,以……代替 UILineBreakModeTailTruncation, // 省略结尾,以……代替 UILineBreakModeMiddleTruncation, // 省略中间,以……代替,多行时作用于最后一行 } UILineBreakMode