標籤:
//高度自適應UIFont *font = [UIFont fontWithName:@"Arial" size:13];//設定一個行高上限CGSize size = CGSizeMake(320,1000);//計算實際frame大小,並將label的frame變成實際大小CGSize labelsize = [entity.content sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];DebugLog(@"height = %f", height) ;
方法一:CGSize titleSize = [titleContent boundingRectWithSize:CGSizeMake(kScreen_Width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} context:nil].size;或方法二:CGSize labelsize = [str sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];//擷取單行字串的寬度和高度NSString *content = @"擷取 UILabel 寬度和高度測試";CGSize size =[content sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]}];//擷取多行字串的寬度和高度UILabel *titleLabel = [[UILabel alloc]init]; titleLabel.font = [UIFont systemFontOfSize:1]; NSString *titleContent = @"擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試"; titleLabel.text = titleContent; titleLabel.numberOfLines = 0;//多行顯示,計算高度 titleLabel.textColor = [UIColor lightGrayColor]; CGSize titleSize = [titleContent boundingRectWithSize:CGSizeMake(kScreen_Width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} context:nil].size; titleLabel.size = titleSize; titleLabel.x = 0; titleLabel.y = 0; [self.view addSubview:titleLabel]; //或者//初始化labelUILabel *label = [[UILabel alloc] init];//設定自動行數與字元換行[label setNumberOfLines:0];[label.lineBreakMode:UILineBreakModeWordWrap]; // 測試字串NSString *str = @"擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試擷取 UILabel 寬度和高度測試";UIFont *font = [UIFont fontWithName:@"Arial" size:13];//設定一個行高上限CGSize size = CGSizeMake(320,1000);//計算實際frame大小,並將label的frame變成實際大小CGSize labelsize = [str sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];[label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)];
IOS 動態擷取 UILabel 元素的寬度和高度