PickerView невидим на черном фоне

Это может быть глупый и очень простой вопрос, но я не смог его решить.

У меня есть контроллер представления с черным фоном, на который я поместил элемент управления PickerView. Я установил делегата и источник данных и подтвердил, что они работают правильно.

Когда я помещаю тот же вид средства выбора на черный фон и устанавливаю оттенок на белый, а цвет фона очищаю, представление средства выбора становится невидимым. Все, что я пытаюсь сделать, это иметь белые шрифты на черном фоне, то есть видимый вид средства выбора. Единственный способ, который я нашел, чтобы сделать окно выбора видимым, — это установить белый фон, что противоречит дизайну этого приложения.

Явно что-то упускаю, но что? Какие-либо предложения? Спасибо!


person Pheepster    schedule 11.03.2014    source источник


Ответы (2)


Опция tint сделает фоновый вид тонированным.

Если вы хотите, чтобы текст был белого цвета, вы должны установить белый цвет текста следующим образом (source):

- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component {
    NSString *title = @"sample title";
    NSAttributedString *attString = [[NSAttributedString alloc] initWithString:title attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];

return attString;

}
person Nicos Karalis    schedule 11.03.2014

В вашем делегате представления выбора вместо предоставления titleForRow: укажите attributedTitleForRow: с атрибутированными строками белого цвета.

В качестве альтернативы используйте viewForRow: и укажите UILabels с белым цветом шрифта.

person matt    schedule 11.03.2014