Aritchie userdialogs在iOS上没有ShowSuccess和ShowError的背景

时间:2016-05-02 15:54:21

标签: ios plugins xamarin xamarin.forms

我已经安装了Aritchie userdialogs第5版,我正在使用Xamarin.Forms版本2.2。 当我使用UserDialogs.Instance.ShowSuccess或UserDialogs.Instance.ShowError时,在Android上显示一个黑暗的背景,在iOS上不显示,当后面的页面大部分是白色时,这个警报消息非常难以理解。 在iOS上,我只是在屏幕中央显示消息和图标,但没有深色背景。

iOS上的示例代码: UserDialogs.Instance.ShowSuccess(“数据已正确保存”);

我该如何解决?

2 个答案:

答案 0 :(得分:1)

不使用ForceiOS6LookAndFeel

enter image description here

在您的iOS原生应用中:

  • 添加Nuget BTProgressHUD
  • 在您的:AppDelegate(AppDelegate.cs)中:

    • 添加using子句:using BigTed;
    • BTProgressHUD.ForceiOS6LookAndFeel = true;方法
    • 中添加代码FinishedLaunching
  • 全部完成: - )
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    BTProgressHUD.ForceiOS6LookAndFeel = true;

    global::Xamarin.Forms.Forms.Init();

    LoadApplication(new App());

    return base.FinishedLaunching(app, options);
}

基于Xamarin.Forms的代码ShowSuccess(或任何其他BTProgressHud相关代码)中的任何调用都将默认为“旧版”样式。

答案 1 :(得分:0)

是否可以使用Toast代替?你可以像这样设置背景:

ToastConfig.SuccessBackgroundColor = System.Drawing.Color.BurlyWood;

像这样创建它:

Toast(ToastEvent.Success)

或者您将不得不更改Acr.UserDialogs使用的BTProgressHud设置。我通过在Acr.UserDialogs.iOS UserDialogsImpl.cs中设置这些值来管理它:

public override void ShowSuccess(string message, int timeoutMillis)
{
    UIApplication.SharedApplication.InvokeOnMainThread(() =>
    {
        BTProgressHUD.ForceiOS6LookAndFeel = true; // This is the line you need
        BTProgressHUD.ShowSuccessWithStatus(message, timeoutMillis);
    });
}

它看起来像这样:

enter image description here