創建UIlabel對象
代碼如下:
UILabel* label = [[UILabel alloc] initWithFrame:self.view.bounds];
設置顯示文本
代碼如下:
label.text = @"This is a UILabel Demo,";
設置文本字體
代碼如下:
label.font = [UIFont fontWithName:@"Arial" size:35];
設置文本顏色
代碼如下:
label.textColor = [UIColor yellowColor];
設置文本水平顯示位置
代碼如下:
label.textAlignment = UITextAlignmentCenter;
設置背景顏色
代碼如下:
label.backgroundColor = [UIColor blueColor];
設置單詞折行方式
代碼如下:
label.lineBreakMode = UILineBreakModeWordWrap;
設置label是否可以顯示多行,0則顯示多行
代碼如下:
label.numberOfLines = 0;
動態調整UILabel高度
代碼如下:
[label sizeToFit];
根據內容大小,動態設置UILabel的高度
代碼如下:
CGSize size = [label.text sizeWithFont:label.font constrainedToSize:self.view.bounds.size lineBreakMode:label.lineBreakMode];
CGRect rect = label.frame;
rect.size.height = size.height;
label.frame = rect;
換行模式
代碼如下:
typedef enum {
UILineBreakModeWordWrap = 0, // 以空格為邊界,保留整個單詞
UILineBreakModeCharacterWrap, // 保留整個字符
UILineBreakModeClip, // 到邊界為止
UILineBreakModeHeadTruncation, // 省略開始,以……代替
UILineBreakModeTailTruncation, // 省略結尾,以……代替
UILineBreakModeMiddleTruncation, // 省略中間,以……代替,多行時作用於最後一行
} UILineBreakMode;
其他:
UILineBreakModeWordWrap = 0,
以單詞為單位換行,以單位為單位截斷。
UILineBreakModeCharacterWrap,
以字符為單位換行,以字符為單位截斷。
UILineBreakModeClip,
以單詞為單位換行。以字符為單位截斷。
UILineBreakModeHeadTruncation,
以單詞為單位換行。如果是單行,則開始部分有省略號。如果是多行,則中間有省略號,省略號後面有4個字符。
UILineBreakModeTailTruncation,
以單詞為單位換行。無論是單行還是多行,都是末尾有省略號。
UILineBreakModeMiddleTruncation,
以單詞為單位換行。無論是單行還是多行,都是中間有省略號,省略號後面只有2個字符。
技巧:根據字符串長度自動適應寬度和高度
代碼如下:
//這個frame是初設的,沒關系,後面還會重新設置其size。
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
label.numberOfLines = 0;
label.backgroundColor = [UIColor clearColor];
NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:20],};
NSString *str = @"abcdefg你上課可是你的拿到了";
CGSize textSize = [str boundingRectWithSize:CGSizeMake(100, 100) options:NSStringDrawingTruncatesLastVisibleLine attributes:attributes context:nil].size;;
[label setFrame:CGRectMake(100, 100, textSize.width, textSize.height)];
label.textColor = [UIColor greenColor];
label.text = str;
[self.view addSubview:label];