Изменить цвет фона selectedSegment на черном UISegmentedControl - PullRequest
0 голосов
/ 30 декабря 2011

Я разрабатываю приложение для iOS 4 с использованием последних SDK и Xcode 4.2.

Я программно добавил UINavigationController в AppDelegate и установил его черным.

- (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;
}

Но, когда я устанавливаю один выбранный элемент, я вижу его, потому что он черный.

Можно ли в любом случае установить другой цвет при выборе элемента?

1 Ответ

0 голосов
/ 30 декабря 2011

Попробуйте использовать segmentedControlIndexChanged, а затем определите, какой из них выбран с помощью self.segmentedControl.selectedSegmentIndex, и измените цвет этих сегментов.

...