iOS開發- UILabel 自動換行 及 高度自適應 – iPhone手機開發技術文章 iPhone軟體開發教學課程

主要是今天看到論壇有人問這個問題,幫忙解決之後, 順便Mark下。

很簡單, 代碼寫的很清楚。 直接上代碼。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 50)];
    label.text = @"今天下午全市多雲到陰有陣雨或雷雨,今天夜裡到明天陰有陣雨,雨量可達大雨。 東北風5-6級陣風7級,逐漸增強到6-7級陣風8級。 今天最高氣溫:26左右, 明晨最低氣溫:22左右。 今晨最低氣溫:21。 今日紫外線等級:2級,照射強度弱,適當防護。 明日洗車指數:4級,天氣有雨,不宜洗車。";
    //清空背景顏色
    label.backgroundColor = [UIColor clearColor];
    //設置字體顏色為白色
    label.textColor = [UIColor whiteColor];
    //設置label的背景色為黑色
    label.backgroundColor = [UIColor blackColor];
    //文字居中顯示
    label.textAlignment = UITextAlignmentCenter;
    //自動折行設置
    label.lineBreakMode = UILineBreakModeWordWrap;
    label.numberOfLines = 0;
    
    //自適應高度
    CGRect txtFrame = label.frame;
    
    label.frame = CGRectMake(10, 100, 300,
                             txtFrame.size.height =[label.text boundingRectWithSize:
                                                    CGSizeMake(txtFrame.size.width, CGFLOAT_MAX)
                                                                            options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                                                         attributes:[NSDictionary dictionaryWithObjectsAndKeys:label.font,NSFontAttributeName, nil] context:nil].size.height);
    label.frame = CGRectMake(10, 100, 300, txtFrame.size.height);
    
    [self.view addSubview:label];

效果圖:

發佈留言