Как изменить размер шрифта текста на UISegmentedControl? - PullRequest
5 голосов
/ 16 августа 2010

Ниже приведен код для инициализации моего UISegmentedControl.

- (void)initializeToolButtons
{
    NSArray *buttonTitles = [NSArray arrayWithObjects:@"ANNEXET", @"HOVET", @"GLOBEN", "ALL", nil];

    toolbuttons = [[UISegmentedControl alloc] initWithItems:buttonTitles];
    toolbuttons.segmentedControlStyle = UISegmentedControlStyleBar;
    toolbuttons.tintColor = [UIColor darkGrayColor];
    toolbuttons.backgroundColor = [UIColor blackColor];     
    toolbuttons.frame = CGRectMake(0, 0, 320, 30);

    [toolbuttons addTarget:self action:@selector(toolButtonsAction) forControlEvents:UIControlEventValueChanged];

    [self.view addSubview:toolbuttons];
}

Как уменьшить размер шрифта для каждого элемента в UISegmentedControl?

Примечание: toolButtons уже объявлено во всем мире.

Ответы [ 2 ]

13 голосов
/ 12 октября 2012

Очень просто:

UIFont *Boldfont = [UIFont boldSystemFontOfSize:16.0f];
    NSDictionary *attributes = [NSDictionary dictionaryWithObject:Boldfont forKey:UITextAttributeFont];
    [segment setTitleTextAttributes:attributes forState:UIControlStateNormal];
3 голосов
/ 01 июня 2011

Подумайте над изменением дизайна вашего интерфейса или используйте стиль "tab", который имеет меньший шрифт. Вмешательство в неэкспонированные свойства может привести к отклонению вашего приложения или поломке приложения, если они что-то изменит.

Например, приведенный пример кода не работает. Когда вы нажимаете на сегмент, шрифт для этого сегмента возвращается к своему обычному размеру. Все непредсказуемое может произойти или измениться в вашем приложении, если вы делаете вещи, которые отличаются от обычного использования этих вещей. Поэтому, если вы хотите, чтобы приложение, которое будет продолжать работать в следующих обновлениях ОС, придерживалось стандартных вещей или создавало свои собственные элементы управления с помощью кнопок UIB и прямоугольных фоновых изображений. Взлом может сработать сейчас, но нельзя сказать, что это будет в будущем.

...