Как изменить цвет текста UIPickerView в режиме визуализации, используя Xamarin.Forms.iOS? - PullRequest
2 голосов
/ 22 марта 2019

Я использовал UIPickerView в файле ios рендерера. Я пытался изменить текст и цвет фона представления.Используется 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);
}

1 Ответ

0 голосов
/ 24 марта 2019

Я не советую использовать PickerRenderer для изменения цвета текста, потому что Xamarin.Forms.Platform.iOS.PickerRenderer очень сложный; на самом деле это UIToolbar, UIBarButtonItem и UITextField, объединенные в UIPickerView.

Код для Xamarin.Forms.Platform.iOS.PickerRenderer с открытым исходным кодом , если вы хотите увидеть, как команда Xamarin.Forms инициализировала Picker на iOS.

Xamarin.Forms.Picker

Намного проще установить TextColor в Xamarin.Forms:

var picker = new Xamarin.Forms.Picker
{
    TextColor = Color.Red
};
...