首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIDatePicker停止工作IOS14

UIDatePicker停止工作IOS14
EN

Stack Overflow用户
提问于 2020-09-30 09:15:54
回答 4查看 2.3K关注 0票数 4

由于我在我的mac上更新了Xcode 12和VS (2019 8.7.8 build 4),并将Xamarin更新为最新版本(Xamarin.iOS 14.0.0.0),我发现我无法使用UIDatePicker。

DatePicker

查看文档,https://developer.apple.com/documentation/uikit/uidatepicker需要设置样式,可能需要设置preferredDatePickerStyle,但这些属性都不是我可以在(Xamarin)代码中设置的。

有没有人找到了一种方法,可以通过这个方法来选择日期?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-10-09 12:03:40

一旦我们设置了preferredDatePickerStylesizeToFit,它就能工作了,下面给出了示例代码。

代码语言:javascript
复制
_datePicker = new UIDatePicker(new CGRect(0, 30, 0, 0));
_datePicker.AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin;
_datePicker.Frame = new CGRect(_datePicker.Frame.Location, new CGSize(300, _datePicker.Frame.Size.Height));
_datePicker.Mode = _datePickerMode;
_datePicker.Date = (NSDate)_defaultDate;
_datePicker.PreferredDatePickerStyle = UIDatePickerStyle.Wheels; //Add this in ios14
_datePicker.SizeToFit(); //Add this in ios14
票数 2
EN

Stack Overflow用户

发布于 2020-09-30 10:50:58

我已经解决了这个问题:

_datePicker.SetValueForKey(new NSNumber(1), new NSString("preferredDatePickerStyle"));

它现在正在显示正确的选择器。

日期选择器

票数 1
EN

Stack Overflow用户

发布于 2021-01-12 20:52:32

我基本上将其他答案的所有细节集中到iOS中的Xamarin表单的相应实现中(省略了iOS中CreateNativeControlOnElementPropertyChanged和自定义方法的实现):

代码语言:javascript
复制
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
    const int iosVersionMajorForDatePickerStyleFeature = 13;
    const int iosVersionMinorForDatePickerStyleFeature = 4;
    base.OnElementChanged(e);

    if (e.OldElement != null || Element == null)
    {
        return;
    }

    //Switch back to the Wheels style for the datePicker (in iOS 14 the default of Automatic uses the Compact style)
    if (UIDevice.CurrentDevice.CheckSystemVersion(iosVersionMajorForDatePickerStyleFeature, iosVersionMinorForDatePickerStyleFeature)
        && Control?.InputView is UIDatePicker datePicker && datePicker.PreferredDatePickerStyle != UIDatePickerStyle.Wheels)
    {
        datePicker.PreferredDatePickerStyle = UIDatePickerStyle.Wheels;
        datePicker.SizeToFit();
    }

    //Do whatever other customization is desired
    //UpdateBorderColor();
    //UpdateBorderWidth();
    //UpdateCornerRadius();
    //UpdatePadding();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64134481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档