gpt4 book ai didi

iOS 7 半透明模态视图 Controller

转载 作者:IT老高 更新时间:2023-10-28 11:23:47 27 4
gpt4 key购买 nike

iOS 7 上的 App Store 应用使用磨砂玻璃效果,可以看到后面的景色。这是使用 iOS 7 内置的 API 还是自定义代码。我希望它会是前者,但我在文档中看不到任何明显的引用。显而易见的事情(比如在模态视图上设置 alpha 属性)似乎没有任何效果。

要查看示例,请打开 App Store 应用并按下右上角的按钮。

App Store home page Modal view in the App Store

最佳答案

随着 iOS 8.0 的发布,不再需要获取图像并对其进行模糊处理。如Andrew Plummer指出,您可以使用UIVisualEffectViewUIBlurEffect .

UIViewController * contributeViewController = [[UIViewController alloc] init];
UIBlurEffect * blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *beView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
beView.frame = self.view.bounds;

contributeViewController.view.frame = self.view.bounds;
contributeViewController.view.backgroundColor = [UIColor clearColor];
[contributeViewController.view insertSubview:beView atIndex:0];
contributeViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;

[self presentViewController:contributeViewController animated:YES completion:nil];

适用于 iOS 8 之前的解决方案

我想扩展 rckoenes 的回答:

正如强调的那样,您可以通过以下方式创建此效果:

  1. 将底层 UIView 转换为 UIImage
  2. 模糊 UIImage
  3. 将 UIImage 设置为 View 的背景。

enter image description here


听起来工作量很大,但实际上做得很简单:

1.创建一个UIView的类别并添加如下方法:

-(UIImage *)convertViewToImage
{
UIGraphicsBeginImageContext(self.bounds.size);
[self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image;
}

<强>2。使用 Apple's Image Effect category 制作当前 View 的图像并将其模糊( download )

UIImage* imageOfUnderlyingView = [self.view convertViewToImage];
imageOfUnderlyingView = [imageOfUnderlyingView applyBlurWithRadius:20
tintColor:[UIColor colorWithWhite:1.0 alpha:0.2]
saturationDeltaFactor:1.3
maskImage:nil];

3.将其设置为叠加层的背景。

-(void)viewDidLoad
{
self.view.backgroundColor = [UIColor clearColor];
UIImageView* backView = [[UIImageView alloc] initWithFrame:self.view.frame];
backView.image = imageOfUnderlyingView;
backView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.6];
[self.view addSubview:backView];
}

关于iOS 7 半透明模态视图 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19177348/

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