建立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];