如何在UISegmentedControl中更改文本颜色?

时间:2011-07-31 13:43:09

标签: objective-c ios uisegmentedcontrol textcolor

有人可以告诉我如何更改UISegment控件的文本颜色吗?

2 个答案:

答案 0 :(得分:3)

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];

答案 1 :(得分:0)

我意识到这是一个老问题,但这是第一次相关的打击。

来自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