Mon*_*tel 11 objective-c blur uiview ios uiblureffect
在我的应用程序中,我想在uiview上应用模糊效果.所以我怎样才能实现模糊效果.我试过下面的代码:
UIGraphicsBeginImageContext(scrollview.bounds.size);
[scrollview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//Blur the UIImage with a CIFilter
CIImage *imageToBlur = [CIImage imageWithCGImage:viewImage.CGImage];
CIFilter *gaussianBlurFilter = [CIFilter filterWithName: @"CIGaussianBlur"];
[gaussianBlurFilter setValue:imageToBlur forKey: @"inputImage"];
[gaussianBlurFilter setValue:[NSNumber numberWithFloat:3] forKey: @"inputRadius"];
CIImage *resultImage = [gaussianBlurFilter valueForKey: @"outputImage"];
UIImage *endImage = [[UIImage alloc] initWithCIImage:resultImage];
//Place the UIImage in a UIImageView
UIImageView *newView = [[UIImageView alloc] initWithFrame:scrollview.bounds];
newView.image = endImage;
[scrollview addSubview:newView];
Run Code Online (Sandbox Code Playgroud)
但是使用此代码时遇到问题.当应用模糊效果时,时间视图变小.
Vin*_*kar 29
只需将此模糊视图放在您想要模糊的View(此处为yourBlurredView)上即可.这是Objective-C中的一个例子:
UIVisualEffect *blurEffect;
blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *visualEffectView;
visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
visualEffectView.frame = yourBlurredView.bounds;
[yourBlurredView addSubview:visualEffectView];
Run Code Online (Sandbox Code Playgroud)
和斯威夫特:
var visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
visualEffectView.frame = yourBlurredView.bounds
yourBlurredView.addSubview(visualEffectView)
Run Code Online (Sandbox Code Playgroud)
extension UIView {
func applyBlurEffect(_ style: UIBlurEffect.Style = .light) {
let blurEffect = UIBlurEffect(style: style)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
addSubview(blurEffectView)
}
}
Run Code Online (Sandbox Code Playgroud)
像这样在 UIView 的任何子类上使用它
view.applyBlurEffect(.light)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9967 次 |
最近记录: |