UISegmentedControl
尝试将字体颜色从白色更改为黑色(适用于iOS 4. *)
UISegmentedControl *button = [[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:itemTitle, nil]] autorelease];
button.momentary = YES;
button.segmentedControlStyle = UISegmentedControlStyleBar;
button.tintColor = [UIColor redColor];
for (id segment in [button subviews]) {
for (id label in [segment subviews]) {
if ([label isKindOfClass:[UILabel class]]) {
UILabel *titleLabel = (UILabel *) label;
[titleLabel setTextColor:[UIColor blackColor]];
}
}
}
UIBarButtonItem *barButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
但文字颜色没有改变 . 我应该怎么做才能更改 UISegmentedControl
的文字颜色?
10 回答
迅捷3.2:
注意:如果您使用自定义背景颜色,您将在角落中看到一个小故障(颜色将填充外部区段..),因此请使用这些线条剪辑它:
更新为Swift 4 - 使用此扩展(因为扩展总是很棒.. !!)
从各自的类,你可以使用这些功能,
在iOS 6.0及更高版本中,它非常简单:
如果您需要更改iOS 7中突出显示的片段的文本颜色,这里有一个解决方案(花了我一段时间才找到,但thanks to this post):
Objective-C
Swift
下面是将字体设置为粗体和点大小的代码:
我希望它有所帮助
Swift 4代码将状态字体颜色设置为黑色
适用于iOS 3.0及更高版本
以防万一到达那里,并使用swift工作 .
我会提出两种可行的方法 . 您可以更改
UIAppearance
中的文本属性,也可以直接更改您正在分段的文本属性 .第一个示例在外观中设置属性,这样您就可以自定义应用中的所有分段控件:
直接在分段中的第二个示例将仅自定义此分段:
在iOS 5.0及更高版本中,您可以使用titleTextAttributes来自定义
UISegmentedControl
对象:在这里,我将字体设置为自定义字体,字体大小,
UISegmentedControl
的每个状态的颜色 .您将在UISegmentedControl类参考的Customizing Appearance部分中找到所有可能的简单自定义 .
我正在使用monotouch . 不知道为什么,但是当推送View时,文字颜色对我来说没有变化 . 为了解决这个问题,我只需在分段控制超视图中添加标签,然后更改颜色:
然后使用它