在不覆盖警报的情况下将UIView叠加层添加到KeyWindow

时间:2018-11-01 18:15:50

标签: ios xamarin

我正在尝试向应用程序添加加载叠加层,到目前为止,它可以正常工作,只是它出于某种原因涵盖了警报。

  • 叠加层是全屏UIView,其显示如下:

    UIApplication.SharedApplication.KeyWindow.AddSubview(view);
    
  • 我随后显示的警报是这样创建的:

    var alertController = UIAlertController.Create(title, message, UIAlertControllerStyle.Alert);
    
    alertController.ModalPresentationStyle = UIModalPresentationStyle.OverCurrentContext;
    
    viewController.PresentViewController(alertController, true, null);
    

问题在于,尽管ModalPresentationStyle设置为OverCurrentContext,警报仍显示在覆盖图下方。有没有一种方法可以强制将它们显示在所有内容之上?

1 个答案:

答案 0 :(得分:0)

原因: 当您在//*[starts-with(@id, '220')] 上添加子视图时,该视图将出现在屏幕顶部。UIAlertController仍被添加在keywindow上,因此它始终位于视图的下方。 enter image description here

解决方案: 如果您确实想在任何内容的顶部发出警报,则可以使用keywindow代替UIAlertView

UIAlertController