我在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);
}
我建议不要使用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中设置TextColor
要容易得多。表格:
var picker = new Xamarin.Forms.Picker
{
TextColor = Color.Red
};