我在ios渲染器文件中使用了UIPickerView,我试图更改视图的文本和背景颜色。使用 SetValueForKeyPath 覆盖方法来更改文本颜色。虽然选择器最初加载到视图中时,文本颜色没有更改,但是当我更改选定的索引时会更改(初始加载问题)。
protected override void OnElementChanged(ElementChangedEventArgs<CustomGrid> e)
{
if (e.NewElement != null)
{
var nativeView = new UIPickerView();
nativeView.Model = new PickerSource();
nativeView.BackgroundColor = UIColor.Yellow;
nativeView.SetValueForKeyPath(UIColor.Red, (NSString)"textColor");
CGRect cGRect = new CGRect(0, 0, 100, 100);
SetNativeControl(nativeView);
}
base.OnElementChanged(e);
}
答案 0 :(得分:0)
我建议不要使用PickerRenderer
来更改文本颜色,因为Xamarin.Forms.Platform.iOS.PickerRenderer
非常复杂。实际上是一个UIToolbar
,UIBarButtonItem
和一个UITextField
组合成一个UIPickerView
的
The code for Xamarin.Forms.Platform.iOS.PickerRenderer
is open-source,如果您想了解Xamarin.Forms团队如何在iOS上初始化Picker
。
在Xamarin.Forms中设置TextColor
容易得多:
var picker = new Xamarin.Forms.Picker
{
TextColor = Color.Red
};