này nên làm việc. Tôi đã nhận xét trong mã để giúp bạn hiểu những gì đang diễn ra:
//To take advantage of CIFilters, you have to import the Core Image framework
#import <CoreImage/CoreImage.h>
//Get a UIImage from the UIView
UIGraphicsBeginImageContext(myView.bounds.size);
[myView.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: 10] forKey: @"inputRadius"];
CIImage *resultImage = [gaussianBlurFilter valueForKey: @"outputImage"];
UIImage *endImage = [[UIImage alloc] initWithCIImage:resultImage];
//Place the UIImage in a UIImageView
UIImageView *newView = [[UIImageView alloc] initWithFrame:self.view.bounds];
newView.image = endImage;
[self.view addSubview:newView];
Nếu bạn có bất kỳ câu hỏi nào về mã, hãy để lại trong phần nhận xét.
Lưu ý: CIGaussianBlur không có trên iOS là 5.1, vì vậy bạn phải tìm cách khác để làm mờ chế độ xem cho thiết bị 5.x + (Cảm ơn @BradLarson cho mẹo này). Câu trả lời được chấp nhận trong this question trông đầy hứa hẹn như một sự thay thế, cũng như this library.
FXBlurView hoạt động trên iOS5 + [https://github.com/nicklockwood/FXBlurView](https://github.com/nicklockwood/FXBlurView). –
Xin lưu ý rằng ít nhất một ứng dụng đã bị từ chối sử dụng một số thư viện này (iOS-blur https://github.com/JagCesar/iOS-blur/issues/25). Các thư viện này sử dụng một lớp bên trong 'UITabBar' để đạt được hiệu quả, và Apple dường như đang từ chối chúng. – pgb
Điều này dường như đã được khắc phục với một cam kết mới. Ngoài ra, ứng dụng bị từ chối bị từ chối vì lý do chính khác. – virindh