UIDatePicker Фон не меняется
Я пытался изменить цвет фона && для UIDatePicker, я выполняю этот код через ViewDidLoad. Цвет текста меняется, но цвет фона отказывается меняться. Вместо этого, когда я запускаю приложение, и представление загружается в первый раз, оно не меняет цвет, но если я коснусь внутри текстового поля, затем перейду к предыдущему экрану, затем щелкните по текстовому полю, цвет фона изменится так, как это должно быть., Это мой код для метода viewdidload ниже:
UIDatePicker *endTimeDatePicker = [[UIDatePicker alloc]init];
endTimeDatePicker.backgroundColor = [UIColor colorWithRed:0/255
green:0/255 blue:0/255 alpha:0.8];
[endTimeDatePicker setValue:[UIColor whiteColor] forKey:@"textColor"];
[endTimeDatePicker setDate:startTime];
endTimeDatePicker.datePickerMode = UIDatePickerModeDate;
[endTimeDatePicker addTarget:self action:@selector(updateEndTime:)
forControlEvents:UIControlEventValueChanged];
[promoEndTime setInputView:endTimeDatePicker];
Я действительно в растерянности, я также попробовал другие варианты, чтобы установить цвет фона...
Задний фоновый цвет, цветовой оттенок, черный цвет
все равно ничего, все тот же результат, любая помощь будет большой благодарностью.
2 ответа
Обычно настройки backgroundColor
это все, что нужно. Если бы вы добавили средство выбора даты в интерфейсный конструктор, это сработало бы. Я подозреваю, что когда вы звоните setInputView
, ваш promoEndTime
переопределяет эту настройку, изменяя ее на что-то другое.
Вы можете обойти это, установив цвет фона после вызова setInputView
, Но вам может показаться, что лучше изменить свою стратегию, потому что сборщики дат общеизвестно устойчивы к изменениям пользовательского интерфейса. Ты уже на тонком льду здесь с Apple, потому что textColor
настройка недокументирована Использование недокументированного API - это серьезный риск того, что Apple отклонит ваше приложение из магазина. Я согласен, что лучшая настройка внешнего вида была бы очень хороша здесь, но изменение цвета текста вызывает проблемы у Apple.
Если кто-то ищет способ изменить цвет фона всплывающего окна календаря в новом компактном стиле ios 14 uidatepicker, то это то, что сработало для меня:
(UIVisualEffectView.classForCoder() as? UIAppearanceContainer.Type).map({ UIDatePicker.appearance(whenContainedInInstancesOf: [$0]).backgroundColor = UIColor.yellow })