Как изменить цвет текста в UISegmentControl? - PullRequest
0 голосов
/ 31 июля 2011

Может кто-нибудь посоветовать мне, как я могу изменить цвет текста элемента управления UISegment?

Ответы [ 2 ]

3 голосов
/ 01 августа 2011

В документации Apple не указан метод для этого программно.Самый простой способ сделать это - сделать снимок экрана каждого из сегментированных сегментов управления без текста на них.Затем откройте Photoshop или GIMP и добавьте желаемый текст с любым цветом, который вы хотите.Затем передайте слайдеру свои изображения примерно так (предполагается 2 сегмента):

UIImage *segmentOne = [[UIImage imageNamed:@"segmentOne.png"] stretchableImageWithLeftCapWidth:4 topCapHeight:0];
UIImage *segmentTwo = [[UIImage imageNamed:@"segmentTwo.png"] stretchableImageWithLeftCapWidth:4 topCapHeight:0];
[_segmentedControl setImage:segmentOne forSegmentAtIndex:0];
[_segmentedControl setImage:segmentTwo forSegmentAtIndex:1];
0 голосов
/ 13 ноября 2013

Я понимаю, что это старый вопрос, но это был первый значимый удар по этому вопросу.

Современный способ, от UICatalog , есть:

NSDictionary *textAttributes = @{ UITextAttributeTextColor:[UIColor blueColor],
                                  UITextAttributeFont:[UIFont systemFontOfSize:13.0] };
[segmentedControl setTitleTextAttributes:textAttributes
                                forState:UIControlStateNormal];

textAttributes = @{ UITextAttributeTextColor:[UIColor redColor],
                    UITextAttributeFont:[UIFont systemFontOfSize:13.0] };
[segmentedControl setTitleTextAttributes:textAttributes
                                forState:UIControlStateHighlighted];

setTitleTextAttributes:forState: впервые появился в iOS 5, поэтому в наши дни нет причин не использовать его.

Стоит упомянуть: вы, вероятно, тоже захотите установить UITextAttributeTextShadowColor.

...