如何使 UIDatePicker 标签在 Xamarin.ios 中不可见但仍具有交互性?

How to make a UIDatePicker label invisible still interactive in Xamarin.ios?

我需要在我的 Xamarin.ios 项目中以编程方式打开一个 UIDatePicker。不幸的是,这是不允许的,也没有 public api。但是我从 Open UIDatePicker programmatically in iOS 14 得到了一些本地代码的技巧 我正在尝试实施这个技巧: 我设法在我的标签上添加了一个 UIDatePicker。这是我的代码:

            lblFromDate.UserInteractionEnabled = false;
            var datePicker = new UIDatePicker(new CGRect(x: lblFromDate.Frame.X, y: 
            lblFromDate.Frame.Y, width: lblFromDate.Frame.Width, height: lblFromDate.Frame.Height));
            datePicker.Mode = UIDatePickerMode.Date;
            datePicker.ValueChanged += DatePicker_ValueChanged;
            Add(datePicker);

但我想以某种方式隐藏日期选择器,但仍然需要它是交互式的,以便在点击标签(实际上是点击日期选择器)时,日期选择器会动画化。

第二个问题是我想在点击任何日期时关闭日历模式。但我发现只有价值改变的事件。是否可以通过编程方式关闭日历模式,这对我有很大帮助。这是点击日期选择器后弹出的日历模式:

第一个问题: 您可以将日期选择器的 PerferredDatePickerStyle 设置为紧凑型,并将日期选择器上的标签颜色设置为白色以覆盖日期选择器。还设置标签的 启用为假。 代码如下:

mydatapicker.PerferredDatePickerStyle=UIDatePickerStyle.Compact;
mylabel.BackgroundColor=UIColor.White;
//.....  

要更改文本,请添加以下代码:

mydatapicker.valuechanged+=Datepicker_Valuechanged;
private void Datepicker_Valuechanged(object sender,EventArgs e) 
{mylabel.Text=mydatapicker.Date.ToString();}

关于你的第二个问题 恐怕没有合适的方法可以在点击任何日期时关闭日历模式。

希望这些对您有所帮助。

1.In 故事板,将标签的启用设置为 false。

2.before点击

3.click

4.after 值已更改

5.code落后