AFBlurSegue 是一个 UIStoryboardSegue 自定义实现,它将自动模糊您的模态视图控制器背景。
如果您正在使用 CocoaPods,只需将以下行添加到您的 Podfile 中。
pod 'AFBlurSegue', '~> 1.2'
如果您不使用 CocoaPods,请将这些文件导入到您的项目中。
AFBlurSegue.h
AFBlurSegue.m
UIImage+ImageEffects.h
UIImage+ImageEffects.h
由于这是一个 Storyboard Segue 自定义实现,因此您可以直接从 Storyboard 开始使用它。如果您已经有了一个 segue,只需将其更改为自定义,然后设置为 AFBlurSegue 作为 segue 类。
如果您必须创建一个 segue,可以通过在初始视图控制器和目标视图控制器之间按下鼠标右键来创建一个新的 segue。它将显示类似于以下图像的框。选择 "模糊",它会自动将 AFBlurSegue 设置为 segue 类。然后为 segue 设置一个标识符。
对于呈现视图控制器,请调用 -performSegueWithIdentifier:sender:
[self performSegueWithIdentifier:@"blurSegue" sender:self];
您可以自定义一些内容,例如模糊半径、着色器颜色、饱和度增量因子和模态过渡样式。为此,将类导入到您的类中
#import "AFBlurSegue.h"
要对其进行自定义,请使用 -prepareForSegue:sender:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UIViewController *destination = segue.destinationViewController;
destination.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
AFBlurSegue *blurSegue = (AFBlurSegue *)segue;
blurSegue.blurRadius = 20;
blurSegue.tintColor = [UIColor colorWithRed:0 green:1 blue:0 alpha:0.1];
blurSegue.saturationDeltaFactor = 0.5;
}
我强烈建议使用 UIModalTransitionStyleCrossDissolve 或 UIModalTransitionCoverVertical 以获得更好的效果。这些动画与模糊效果配合得非常好。
由于没有公共 API 提供模糊效果,我们需要找到一些解决方案。目前,许多模糊类正在使用著名的 UIToolbar 撒旦。由于 UIToolbar具有原生模糊功能,可以更改其大小并用作模糊容器。AFBlurSegue 使用苹果提供的 UIImage+ImageEffects 类。
AFBlurSegue 在 MIT 许可证下,因此请随意使用它!
由Alvaro Franco制作。如果您有任何问题,请随时通过[保护邮箱地址,请显示为:[email protected]]联系我。