Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как установить метку в соответствии с текстом, но я также хочу цвет фона

Автор вопроса: amit rajputОтветов: 5

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

введите здесь описание изображения

На изображении черный цвет фона соответствует динамическому тексту. Я хочу черный цвет фона до текста Индия.

  • пожалуйста, уточните амид... IronManGill 06.11.2012

iphoneuitextfielduilabel

Ответы

Ответ 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]];

Ответ 3 · рейтинг 1 · Sanoj

Рассчитайте ширину текста и назначьте ее ширине рамки метки.

Ответ 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)];

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы