如何使用Xamarin.Forms.iOS在渲染器视图中更改UIPickerView文本颜色?

问题描述 投票:2回答:1

我在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);
}
c# xamarin.forms xamarin.ios uipickerview
1个回答
0
投票

我建议不要使用PickerRenderer来改变文字颜色,因为Xamarin.Forms.Platform.iOS.PickerRenderer非常复杂;它实际上是一个UIToolbarUIBarButtonItem和一个UITextField组合成一个UIPickerView

The code for Xamarin.Forms.Platform.iOS.PickerRenderer is open-source如果你想看看Xamarin.Forms团队如何在iOS上初始化Picker

Xamarin.Forms.Picker

在Xamarin中设置TextColor要容易得多。表格:

var picker = new Xamarin.Forms.Picker
{
    TextColor = Color.Red
};
© www.soinside.com 2019 - 2024. All rights reserved.