Мне нужен комбинированный указатель даты и времени в проекте Xamarin.Forms, поэтому я использовал собственный View & Renderer, который прекрасно работает на моем тестовом устройстве iPhone 8 Plus. К сожалению, на iPhone XS или 11 Pro (физические устройства, оба на 13.3) средство выбора не отображает правильно - все даты неактивны, а время полностью невидимо, но присутствует (я чувствую «щелчки» при смахивании вверх) / вниз в области, где это будет). Неудивительно, что симулятор для обоих этих устройств отображается правильно. Полный пример проекта вместе со скриншотами с обоих устройств на GitHub . Вот соответствующий код от средства визуализации на случай, если что-нибудь выпадет:
protected override void OnElementChanged(ElementChangedEventArgs<MyDatePicker> e)
{
base.OnElementChanged(e);
if (e.OldElement != null)
{
_datePicker.ValueChanged -= DatePickerOnValueChanged;
}
if (e.NewElement != null)
{
if (Control == null)
{
_datePicker = new UIDatePicker(new CGRect(
e.NewElement.Bounds.X,
e.NewElement.Bounds.Y,
e.NewElement.Bounds.Width,
e.NewElement.Bounds.Height
));
_datePicker.Mode = UIDatePickerMode.DateAndTime;
_datePicker.Date = (NSDate) Element.Date;
_datePicker.MaximumDate = (NSDate) Element.Date.AddDays(1);
_datePicker.MinimumDate = (NSDate) Element.Date.Subtract(TimeSpan.FromDays(5));
_datePicker.MinuteInterval = 1;
SetNativeControl(_datePicker);
}
_datePicker.ValueChanged += DatePickerOnValueChanged;
}
}