-3
我工作的自定義視圖作爲子視圖添加到UIWindow中。我希望將該自定義視圖始終放在應用中的任何視圖之上,並且用戶可以與自定義視圖背後的任何視圖進行交互。現在,自定義視圖在窗口中添加後顯示在頂部,但問題是自定義視圖消失,如果現在任何視圖呈現模態。所以請每當我添加自定義視圖時找到邏輯,然後我的自定義視圖應該出現在新視圖的前面。如何將uiview始終放在ios的底部角落
我工作的自定義視圖作爲子視圖添加到UIWindow中。我希望將該自定義視圖始終放在應用中的任何視圖之上,並且用戶可以與自定義視圖背後的任何視圖進行交互。現在,自定義視圖在窗口中添加後顯示在頂部,但問題是自定義視圖消失,如果現在任何視圖呈現模態。所以請每當我添加自定義視圖時找到邏輯,然後我的自定義視圖應該出現在新視圖的前面。如何將uiview始終放在ios的底部角落
static const NSString * StickyView = @"StickyView";
-(void)displaySticky
{
if([[UIApplication sharedApplication].keyWindow.rootViewController.presentedViewController isKindOfClass:[UIAlertController class]])
return;
dispatch_async(dispatch_get_main_queue(), ^{
UIWindow *mainWindow = [UIApplication sharedApplication].keyWindow;
UIView *existingView = (UIView *)objc_getAssociatedObject(mainWindow, &StickyView);
if (existingView != nil)
{
[mainWindow bringSubviewToFront:existingView];
return;
}
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 150, 125)];
view.center = CGPointMake(mainWindow.bounds.size.width-150/2,mainWindow.bounds.size.height-125/2);
objc_setAssociatedObject (mainWindow, &StickyView, view, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
[mainWindow addSubview:view];
[mainWindow bringSubviewToFront:view];
});
}
現在,您應該在所有ViewController類的'viewDidAppear'中調用該方法,如下所示
[[Utils sharedInstance] displaySticky];
//假設你的單例類的實例方法是 'sharedInstance'