2015-09-09 6 views
0

CGSize, который я получаю, длиннее по высоте, чем шрифт ярлыка. Я хочу удалить верхний/левый/правый/нижний отступы между текстом и краями UILabel, чтобы рамка UILabel просто соответствовала содержащемуся в ней тексту.Настройка CGSize в соответствии с размером шрифта UILabel

Это код, я использую ....

NSString *[email protected]"hello"; 
NSDictionary *fontAttributes = @{NSFontAttributeName : [UIFont systemFontOfSize:50]}; 
CGSize textSize = [ad sizeWithAttributes:fontAttributes]; 
bc =[[UILabel alloc]initWithFrame:CGRectMake(20, 25, textSize.width, textSize.height)]; 
bc.font= [UIFont systemFontOfSize:50]; 
bc.text=ad; 
bc.layer.borderColor = [UIColor blackColor].CGColor; 
bc.layer.borderWidth = 1.0; 

[self.tap addSubview:bc]; 
+0

Это код, который я использую ... NSString * ad = @ "hello"; NSDictionary * fontAttributes = @ {NSFontAttributeName: [UIFont systemFontOfSize: 50]}; CGSize textSize = [размер объявленияWithAttributes: fontAttributes]; bc = [[UILabel alloc] initWithFrame: CGRectMake (20, 25, textSize.width, textSize.height)]; bc.font = [UIFont systemFontOfSize: 50]; bc.text = ad; bc.layer.borderColor = [UIColor blackColor] .CGColor; bc.layer.borderWidth = 1.0; [self.tap addSubview: bc]; – rajat

+0

Что именно вы хотите сделать? –

+0

CGSize textSize имеют высоту немного большую, чем высота шрифта, но я хотел бы, чтобы высота текста и высота шрифта были одинаковыми .. – rajat

ответ

0

Вы можете сделать это, установив свойство sizeToFitContent если вы притащили его в поле зрения. Программно, вы можете попробовать sizeToFit.

+0

Я не есть какие-либо проблемы с размером шрифта Label и не хотят соответствовать метке с CGSize. я просто хочу, чтобы CGSize имел точную высоту с размером шрифта метки. – rajat

0

Попробуйте это:

NSString *mytext = @"some random text"; 
    UILabel *someLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 100)]; 
    someLabel.text = mytext; 
    someLabel.backgroundColor = [UIColor clearColor]; 
    someLabel.lineBreakMode = NSLineBreakByWordWrapping; 
    [self.view addSubview:someLabel]; 

    // For single line 
    someLabel.numberOfLines = 1; 
    someLabel.minimumScaleFactor = 8; 
    someLabel.adjustsFontSizeToFitWidth = YES; 

    // For multiple lines 
    someLabel.numberOfLines = 0; 
    someLabel.lineBreakMode = NSLineBreakByWordWrapping; 
    CGSize maximumLabelSize = CGSizeMake(someLabel.frame.size.width, CGFLOAT_MAX); 
    CGSize expectSize = [someLabel sizeThatFits:maximumLabelSize]; 
    someLabel.frame = CGRectMake(someLabel.frame.origin.x, someLabel.frame.origin.y, expectSize.width, expectSize.height); 
+0

Мне нужно использовать только одно слово в ярлыках и не иметь проблем с размером шрифта Label. Я просто хочу, чтобы CGSize имел точную высоту с размером шрифта метки – rajat

1

Вы не должны получить CGSize TextSize выделить свой UILabel.

Использование autolayout в наклейке:

  1. Добавить метку сверху, ведущий, отставая ограничения в вашем XIb.
  2. Установить numberOfLines свойство 0
  3. Установите preferredMaxLayout ширину в вашем VC (если ваша цель развития < iOS8)
  4. Установить любой текст вы хотите.
+0

да .. я знаю, что мне не нужно получать CGSize textSize для распределения UILabel ... но по какой-то причине мне нужно использовать CGSize. Проблема заключается в CGSize textSize имеют высоту немного больше, чем шрифт, но я хотел, чтобы высота текста и высота шрифта были одинаковыми ... но все же спасибо за ваш ответ ... это наверняка поможет мне или кому-то еще в будущем .... – rajat