如何解决UIDatePicker停止工作Xamarin IOS14
由于我已在Mac上更新到Xcode 12和VS(2019 8.7.8 build 4),并将Xamarin更新到了最新版本(Xamarin.iOS 14.0.0.0),所以我无法使用UIDatePicker。
查看文档,https://developer.apple.com/documentation/uikit/uidatepicker我需要设置Style,也许还要设置preferredDatePickerStyle,但是这些都不是我可以在(Xamarin)代码中设置的属性。
有没有人找到一种方法可以超越此日期以选择日期?
解决方法
一旦我们设置了root.walkDecls(/^--/,(decl) => {
//…
});
和Declaration:
,它就会起作用,示例代码如下。
preferredDatePickerStyle
,
我已经解决了这个问题:
_datePicker.SetValueForKey(new NSNumber(1),new NSString("preferredDatePickerStyle"));
现在显示正确的选择器
,最近我也遇到了这个有趣的问题。当我们使用Xcode 12对其进行打包时,一切正常,但是当切换到Xcode 12及更高版本进行打包日期选择和显示时,它将显得异常。
因为iOS 13.4 UIDatePicker具有新功能
- @属性(非原子,读写,分配)UIDatePickerStyle preferredDatePickerStyle API_AVAILABLE(ios(13.4))API_UNAVAILABLE(tvos,watchos);
如果要保留原始样式,可以添加此代码
_datePick = [[UIDatePicker alloc] init];
if (@available(iOS 13.4,*)) {
_datePick.preferredDatePickerStyle = UIDatePickerStyleWheels;
}
,
我基本上是将其他答案的所有细节放在 public class CustomDatePickerRenderer : DatePickerRenderer
中针对 iOS 中 Xamarin Forms 的相应实现中(省略了我对 CreateNativeControl
、OnElementPropertyChanged
和自定义的实现)为简洁起见的方法):
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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。