Xamarin Forms Searchbar iOS 13忽略背景色

Pat*_*ode 5 xamarin.ios xamarin xamarin.forms

似乎最新版本的iOS(13)忽略了搜索栏的背景色?

iOS 13对UISearchBar色调的更改,无法实现相同的结果

我正在使用它,并且可以在下面的所有版本上使用,但是在13上它会忽略背景颜色并使其变为白色

  <SearchBar HeightRequest="35" BackgroundColor="#2A4880" TextColor="White"></SearchBar>
Run Code Online (Sandbox Code Playgroud)

这是一个已知的问题?有没有解决的办法?

Tre*_*ter 4

您可以通过创建PlatformEffect来解决此问题:

应用程序.xaml.cs

[assembly: ResolutionGroupName("ProjectName")]
namespace ProjectName.App
{
    public partial class App : Application
    {
        ...
Run Code Online (Sandbox Code Playgroud)

共享项目:

public class SearchBarBackgroundEffect : RoutingEffect
    {
        public SearchBarBackgroundEffect() : base("ProjectName.SearchBarBackgroundEffect") { }
    }
Run Code Online (Sandbox Code Playgroud)

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.
        }
    }
Run Code Online (Sandbox Code Playgroud)

XAML 文件

 <SearchBar>
                <SearchBar.Effects>
                    <effects:SearchBarBackgroundEffect />
                </SearchBar.Effects>
            </SearchBar>
Run Code Online (Sandbox Code Playgroud)