我正在创建一个UIViewController,上面带有动画,我希望在“加载”或更改视图时显示它。有没有一种方法可以让我在其他人执行业务逻辑时以及在他们各自的ViewDidLoad函数中调用完这些视图之后在其他视图之上显示该视图,以“隐藏”该外观视图?
答案 0 :(得分:0)
我想您要显示具有自己的自定义动画的加载叠加层,并且要在任何View
或ViewController
上显示/隐藏此加载叠加层。如果我的理解是正确的,那么您可以如下实现:
假设loadingOverlay
是您的动画视图实例。
为此分配一些唯一的Tag
:
loadingOverlay.Tag = 1678;
这可以是任何数字,可以从任何ViewController中UIWindow
的所有其他视图中唯一标识您的加载叠加视图。
显示:
UIWindow myKeyWindow = UIApplication.SharedApplication.KeyWindow;
myKeyWindow.AddSubView(loadingOverlay);
隐藏:
var loadingOverlay = myKeyWindow.ViewWithTag(1678);
//Remove completely
loadingOverlay?.RemoveFromSuperView();
//OR
//Simply hide it
loadingOverlay?.Hidden = true;
注意:如果要使用Hidden
属性,则必须确保仅将此视图添加到UIWindow
中一次。
因此,理想情况下,任何您想显示的内容, 应该进入
KeyWindow (UiWindow)
希望这会有所帮助!