gpt4 book ai didi

ios - 如何从 IOS 应用程序 Controller 显示半透明 View

转载 作者:行者123 更新时间:2023-11-28 21:48:04 25 4
gpt4 key购买 nike



假设我的 IOS 应用程序中有十个 View Controller 。假设特定事件(例如:BLE 连接成功/失败)将在应用程序 Controller 中得到通知。
我想阻止当前的 View Controller (无论它是哪个 View Controller ),并根据来自应用程序 Controller 的事件显示一个半透明的 View 2 秒。

我如何在IOS中实现这个。非常感谢任何帮助。

最佳答案

我对上述问题的解决方案是这样的:

创建覆盖任何 View 、导航栏和标签栏的自定义透明叠加 UIView。

-在您的 View Controller 嵌入的导航 Controller (或标签栏 Controller )中,我创建了一个自定义 View ,其框架等于导航 Controller View 的框架。

-然后我通过将它的 origin.y 设置为 navigationController.view.height 将它设置在屏幕外

-然后我创建了 2 个函数 -(void)showOverlay-(void)hideOverlay 来为屏幕上和屏幕外的叠加 View 设置动画:

- (void)hideOverlay{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];

CGRect frm = self.helpView.frame;//helpView is my overlay
frm.origin.y = self.offscreenOffset; //this is an Y offscreen usually self.view.height
self.helpView.frame = frm;

[UIView commitAnimations];
}

- (void)showOverlay{

[self.view bringSubviewToFront:self.helpView];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];

CGRect frm = self.helpView.frame;
frm.origin.y = self.onscreenOffset;
self.helpView.frame = frm;

[UIView commitAnimations];
}

-在我的 View Controller 中我可以调用

[(MyCustomNavCtrl *)self.navigationController showOverlay];
[(MyCustomNavCtrl *)self.navigationController hideOverlay];
And that's about it.

关于ios - 如何从 IOS 应用程序 Controller 显示半透明 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29368637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com