Мой вопрос вращается вокруг различия UISegmentedController на UINavigationBar и UIToolbar. Если я сброшу UISegmentedControl в навигационную панель следующим образом:UISegmentedControl Цвет в UIToolbar
navigationBar.barStyle = UIBarStyleBlackTranslucent;
все хорошо. UISegmentedControl идентифицирует выбранный вариант со слегка темным черным. Но, если я удалю UISegmentedControl на UIToolbar, он не получит цвет или полупрозрачность с панели инструментов. Если я вручную установил tintColor, UISegmentedControl больше не будет различать выбранные и невыбранные.
Следует признать, что перед тем, как перейти на UIToolbar, необходимо обернуть UISegmentedControl в UIBarButtonItem. Мне интересно, является ли это причиной того, что UISegmentedControl выглядит некорректно (синий на полупрозрачном черном фоне).
toolbar.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:item,nil];
toolbar.items = toolbarItems;
Конечно, мой код не так, как написано, так как я с помощью внутренней навигации и контроллера панели инструментов, но общая логика та же. Я не уверен, как сделать UISegmentedControl на UIToolbar черным полупрозрачным стилем - сохраняя очевидное различие между выбранными и невыбранными сегментами.
Это помогает: 'segmentedController.tintColor = [UIColor darkGrayColor];' но он создает жестко закодированную зависимость, которую я бы лучше не вводил. Например, сделать его несколько сложнее, чтобы пользователь мог выбирать цветовые схемы. –
Вы поняли это в конце? – DenNukem
Пока Apple не реализует логику окраски UINavigation в UIToolbar для UISegmentedControl, я был отнесен на использование свойства tintColor. –