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

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

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

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

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

2 ответа

Решение

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

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

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

}

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

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

Другие вопросы по тегам