цель c найти ширину строки в пикселях - PullRequest
1 голос
/ 07 октября 2010

alt text

У меня есть UIB-кнопка фиксированной ширины, и я хочу разместить в ней текст.Поскольку размер строки заранее неизвестен, мне придется изменить размер шрифта, когда я читаю строку из плоского файла.Как я могу это сделать?Будет замечательной функция, подобная следующей:

UIFont resizeFontAs:(UIFont)initialFont andStringAs:(NSString*)string andWidthAs:(int)width

Заранее спасибо

Редактировать: Этот код не работает:

// Method for creating button, with background image and other properties
- (UIButton *) getCallAgentButtonWithTitleAs:(NSString *)aTitle andImageAs:(UIImage*)bgImg atIndex:(int)index{    
    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];  
    aButton.frame = CGRectMake(10, 2+index*50, 300, 48);    
    aButton.titleLabel.frame = CGRectMake(aButton.titleLabel.frame.origin.x + 25.0,                   aButton.titleLabel.frame.origin.y, aButton.titleLabel.frame.size.width - 50.0,     aButton.titleLabel.frame.size.height);     
    aButton.titleLabel.adjustsFontSizeToFitWidth = YES;
    [aButton setTitle:aTitle forState:UIControlStateNormal];
    //aButton.titleLabel.font = [UIFont boldSystemFontOfSize:12];   
    [aButton setTitleColor:UIColorFromRGB(0xFDD428) forState:UIControlStateNormal];
    [aButton setBackgroundImage:bgImg forState:UIControlStateNormal];
    [aButton addTarget:self action:@selector(callAgent:) forControlEvents:UIControlEventTouchUpInside];
    // set the tag as the index and use it later to obtain the phoneNo
    [aButton setTag:index];
    return aButton;  
}

Ответы [ 2 ]

5 голосов
/ 07 октября 2010

Вы можете указать метку кнопки, чтобы изменить размер самого шрифта.

myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
myButton.titleLabel.minimumFontSize = 6.0; // Pick your own value here.
2 голосов
/ 07 октября 2010

Используйте следующий метод:

-  (CGSize)sizeWithFont:(UIFont *)font
            minFontSize:(CGFloat)minFontSize
         actualFontSize:(CGFloat *)actualFontSize
               forWidth:(CGFloat)width
          lineBreakMode:(UILineBreakMode)lineBreakMode

Это позволит вам указать как размер по умолчанию (первый аргумент), так и минимальный размер, и шрифт будет автоматически масштабироваться при необходимости.

...