gpt4 book ai didi

iphone - 如何使 View 具有半透明边框并显示下面的 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:36 25 4
gpt4 key购买 nike

可能有点新手问题,但是......我正在编写一个使用 UITabBarController 的 iPhone 应用程序。在 Interface Builder 中,我在 MainWindow.xib 中设置了选项卡栏。我有 4 个选项卡,每个选项卡都设置为为适当的 UIViewController 子类加载 xib。我在 Interface Builder 中为每个 UIViewController 子类在 xib 文件中创建了 View 。一切正常,因为我可以点击每个选项卡,它会显示正确的 UIViewController 的 View

但我真正想要的是 UIViewController 子类之一的 View 在所有 4 个边缘上都有一个大约 30px 的半透明边框,以便它显示后面 View 的边缘,有点变灰。IE。第一个选项卡是主应用程序,它占据了整个屏幕(减去状态和选项卡栏区域)。选项卡 2 用于保存,我希望它看起来像主应用程序顶部的一个小模态窗口。(如果我将其作为 html 网络应用程序来执行,我将使用的术语和技术将是 jQuery 覆盖)

这有意义吗?

我试过使用 presentModalViewController,但这让情况变得更糟,因为它占据了整个屏幕,包括状态和标签栏区域。

非常感谢任何帮助或指点干杯

内森

最佳答案

您的 UIViewController 不能对其下方的 View 透明,因为 iphone 可能会卸载其下方当前未显示的 View (以节省内存)。

我使用过的最佳解决方案是在推送新 View Controller 之前拍摄当前 View 的照片,然后将其用作背景图像(伪造透明度)。以下是我的实现方式:

NewViewController *newView = [[NewViewController alloc] init];
shareVC.imageBackground = [Utilities getScreenshot:self.view];
[self presentModalViewController:newView animated:YES];
[newView release];

然后在您的 newViewController 上执行此操作(在 viewDidLoad、viewWillAppear 等上):

[imageView setImage:imageBackground];

这里是截图功能

+(UIImage *)getScreenshot:(UIView *)_view {
//take a screenshow of the parent view so we can add it as a background to the modal view
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(_view.window.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(_view.window.bounds.size);
[_view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}

然后,您需要使用 UIImageView 设置新 View 作为背景,并为该 imageView 选择正确的 Alpha 值,使其看起来像透明的。

关于iphone - 如何使 View 具有半透明边框并显示下面的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473534/

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