有没有办法自定义UISegmentedControl
中选定段的颜色?
我发现了segmentedController.tintColor
属性,它允许我自定义整个分段控件的颜色。
问题在于,当我为tintColor
属性选择明亮的颜色时,选定的段几乎无法被识别(它的颜色与其余分段控件的颜色几乎相同,因此很难区分选定和未选定的段)。
所以我不能使用任何好看的明亮颜色作为分段控制的颜色。
解决方案是一些单独的选定段颜色的属性,但我找不到这个属性。有人解决了这个问题吗?
有没有办法自定义UISegmentedControl
中选定段的颜色?
我发现了segmentedController.tintColor
属性,它允许我自定义整个分段控件的颜色。
问题在于,当我为tintColor
属性选择明亮的颜色时,选定的段几乎无法被识别(它的颜色与其余分段控件的颜色几乎相同,因此很难区分选定和未选定的段)。
所以我不能使用任何好看的明亮颜色作为分段控制的颜色。
解决方案是一些单独的选定段颜色的属性,但我找不到这个属性。有人解决了这个问题吗?
- (IBAction)segmentControlValueChanged:(UISegmentedControl *)sender
{
if ([[sender.subviews firstObject] respondsToSelector:@selector(setTintColor:)]) {
for (id segment in sender.subviews) {
if ([segment respondsToSelector:@selector(isSelected)] && [segment isSelected]) {
[segment setTintColor:[UIColor redColor]];
} else {
[segment setTintColor:[UIColor grayColor]];
}
}
}
}
[segmentedControl setSelectedSegmentTintColor:[UIColor darkGrayColor]];
//For iOS 13
这段 Swift 4 代码对我有效
segmentedControl.setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.red], for: .selected)