Панель поиска Xamarin Forms iOS 13 игнорирует цвет фона - PullRequest
5 голосов
/ 08 октября 2019

Кажется, что последняя версия iOS (13) игнорирует цвет фона панели поиска?

iOS 13 Изменения оттенка UISearchBar, не могут достичь того же результата

Я использую это, и он работает на всех версиях ниже, но на 13 он игнорирует цвет фона и делает его белым

  <SearchBar HeightRequest="35" BackgroundColor="#2A4880" TextColor="White"></SearchBar>

Это известная проблема? Есть ли работа вокруг?

Ответы [ 2 ]

3 голосов
/ 10 октября 2019

Вы можете решить эту проблему, создав PlatformEffect :

App.xaml.cs

[assembly: ResolutionGroupName("ProjectName")]
namespace ProjectName.App
{
    public partial class App : Application
    {
        ...

Общий проект:

public class SearchBarBackgroundEffect : RoutingEffect
    {
        public SearchBarBackgroundEffect() : base("ProjectName.SearchBarBackgroundEffect") { }
    }

Проект iOS:


[assembly: ExportEffect(typeof(SearchBarBackgroundPlatformEffect), "SearchBarBackgroundEffect")]
 public class SearchBarBackgroundPlatformEffect : PlatformEffect
    {
        private UISearchBar NativeSearchBar => (UISearchBar)Control;
        private SearchBar XamarinSearchBar => (SearchBar)Element;

        protected override void OnAttached()
        {
            if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
                NativeSearchBar.SearchTextField.BackgroundColor = XamarinSearchBar.BackgroundColor.ToUIColor();
        }

        protected override void OnDetached()
        {
             // Intentionally left blank.
        }
    }

XAML-файл

 <SearchBar>
                <SearchBar.Effects>
                    <effects:SearchBarBackgroundEffect />
                </SearchBar.Effects>
            </SearchBar>
2 голосов
/ 09 октября 2019

Если вы столкнулись с этой проблемой, это определенно ошибка, которую необходимо исправить с помощью форм Xamarin.

Он был представлен в iOS 13, когда было представлено новое свойство. Как я упоминал здесь , они должны поставить условную проверку для iOS 13 и установить BackgroundColor для SearchBar.

Вы можете открыть проблему в Xamarin Forms на GitHub, а пока использовать CustomRenderer, чтобы исправить это локально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...