更改黑色 UISegmentedControl 上的 selectedSegment 背景颜色

Posted

技术标签:

【中文标题】更改黑色 UISegmentedControl 上的 selectedSegment 背景颜色【英文标题】:Change selectedSegment background color on a black UISegmentedControl 【发布时间】:2011-12-30 10:30:54 【问题描述】:

我正在使用最新的 SDK 和 Xcode 4.2 开发一个 ios 4 应用程序。

我以编程方式在 AppDelegate 上添加了 UINavigationController,并将其设置为黑色。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    viewController.title = @"Menu";
    navController = [[UINavigationController alloc] initWithRootViewController:viewController];
    navController.navigationBar.tintColor = [UIColor blackColor];

    self.window.rootViewController = navController;

    [self.window makeKeyAndVisible];
    return YES;

在一个视图控制器上,我添加了一个 UISegmentedControl:

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.


    // Do any additional setup after loading the view from its nib.
    segmentedControl = [[UISegmentedControl alloc] initWithItems:
                                            [NSArray arrayWithObjects:
                                             [NSString stringWithString:@"Past"],
                                             [NSString stringWithString:@"Present"],
                                             [NSString stringWithString:@"Future"],
                                             nil]];

    [segmentedControl addTarget:self action:@selector(segmentedChanged:) forControlEvents:UIControlEventValueChanged];
    segmentedControl.frame = CGRectMake(0, 0, 260, 30);
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
    segmentedControl.selectedSegmentIndex = 0;

    self.navigationItem.titleView = segmentedControl;

但是,当我选择一个项目时,我可以看到它,因为它是黑色的。

当一个项目被选中时,无论如何设置为另一种颜色?

【问题讨论】:

您可以从 [This][1] [1] 获得帮助:***.com/questions/2270526/… 【参考方案1】:

尝试使用segmentedControlIndexChanged,然后检测使用self.segmentedControl.selectedSegmentIndex 选择了哪一个并更改该段颜色。

【讨论】:

以上是关于更改黑色 UISegmentedControl 上的 selectedSegment 背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何使黑色 UISegmentedControl 显示为可见的选择突出显示?

UISegmentedControl 在值更改时未选择

UISegmentedControl 值更改时如何仅更改文本颜色?

iOS 13 - UISegmentedControl - 如何更改 selectedSegment 的圆角半径?

更改 UISegmentedControl 的选定段

如何在不更改字体大小的情况下快速更改 UISegmentedControl 的字体?