UISegmentedControl раскрашивают UIToolbar

Мой вопрос вращается вокруг различия UISegmentedController на UINavigationBar по сравнению с UIToolbar. Если я бросаю UISegmentedControl в панель навигации следующим образом:

navigationBar.barStyle = UIBarStyleBlackTranslucent;

все хорошо. UISegmentedControl отождествляет выбранную опцию с немного более темно-черным. Но, если я отбрасываю UISegmentedControl на UIToolbar, он не берет цвет или полупрозрачность от панели инструментов. Если я вручную установил tintColor, UISegmentedControl не различает выбранный и отменявший больше.

По общему признанию нужно обернуть UISegmentedControl в UIBarButtonItem прежде, чем отбросить на UIToolbar. Я задаюсь вопросом, является ли это частью причины, UISegmentedControl выглядит неправильным (синий на полупрозрачном черном фоне).

toolbar.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; 
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:item,nil];
toolbar.items = toolbarItems;

Предоставленный, мой код ТОЧНО как не написан, так как я использую внутреннюю навигацию и панель инструментов контроллера, но общая логика является тем же. Я не уверен, как заставить UISegmentedControl на UIToolbar иметь черный полупрозрачный стиль - поддержание очевидного различия между выбранными и отменявшими сегментами.

9
задан Luther Baker 1 January 2010 в 20:56
поделиться

1 ответ

Похоже на то: сегментController.tintColor = [UIColor darkGrayColor]; решает вашу задачу.

Для удаления "зависимости", подкласс UISegmentedControl и установки оттенка в конструкторе.

CustomSegmentedControl.m

- (id)initWithItems:(NSArray*)items {
    if( self = [super initWithItems:items] ) {
         self.tintColor = [UIColor darkGrayColor];
    }
    return self;
}
7
ответ дан 4 December 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: