更改黑色 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 值更改时如何仅更改文本颜色?