Как установить UILabel в соответствии с текстом, но я хочу, чтобы backGroundColor также был в нем, если текст маленький, то он будет отображать маленькую фоновую метку с черным цветом фона и текстом и наоборот. Как это сделать?

На изображении черный цвет фона соответствует динамическому тексту. Я хочу черный цвет фона до текста Индия.
Ответ 1 · рейтинг 2 · Arvind Kanjariya
Попробуй это
NSString *sample = @"...";
CGSize txtSz = [sample sizeWithFont:[UIFont fontWithName: @"Helvetica" size: 16]];
CGRect lblFrame = CGRectMake(10,50, txtSz.width, txtSz.height);
yourLabel.frame = lblFrame;
yourLabel.backgroundColor = [UIColor blackColor];
Ответ 2 · рейтинг 2 · Raheel Sadiq
для UILabel, чтобы он соответствовал всему тексту, используйте sizeToFit
[label sizeToFit];
Если вы хотите, чтобы размер фона изображения соответствовал размеру этикетки, сделайте просмотр изображения
imageView.frame = CGRectMake(0, 0, label.frame.size.width, label.frame.size.height);
или если вам нужен только цвет фона метки, используйте
[label setBackgroundColor:[UIColor blackColor]];
Ответ 4 · рейтинг 1 · Waseem Shah
это сделано в моем приложении вам должно понравиться сделал это
label.text = @"Some text" ;
CGSize textSize = [label.text sizeWithFont:label.font];
backView.frame=CGRectMake(startPointX, startPointY, textSize.width, 1);
здесь вы должны создать новый вид на обратной стороне этикетки, и это имя называется backview, и установить рамку этого вида, а затем показать, что он отлично работает в моем приложении :-)
Ответ 5 · Rahul Patel
Следующий код может помочь вам
UILabel *biotitlelb = [[UILabel alloc]initWithFrame:CGRectMake(0,0,100,16)];
[biotitlelb setTextColor:[UIColor whiteColor]];
[biotitlelb setBackgroundColor:[UIColor blackColor]];
biotitlelb.textAlignment = UITextAlignmentLeft;
biotitlelb.font = [UIFont fontWithName:@"ArialMT" size:12];
biotitlelb.text = @"sometext";
CGSize textSize = [biotitlelb.text sizeWithFont:[UIFont fontWithName:@"ArialMT" size:12]];
CGFloat strikeWidth = textSize.width;
[biotitlelb setframe:CGRectMake(0,0,strikeWidth,16)];