Простейшие, просто добавить визуальный эффект, как это:
UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Wormhole.jpg"]];
[self.view insertSubview:backgroundView atIndex:0];
UIVisualEffectView *effect = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
[backgroundView addSubview:effect];
Но это может привести к снижению производительности. Поэтому лучшим решением должно быть то, что вы перерисовываете изображение с размытием и устанавливаете размытое изображение в качестве изображения backgroundView. Как размыть изображение, см below:
UIImageView *backgroundView = [[UIImageView alloc] init];
[self.view insertSubview:backgroundView atIndex:0];
UIImage *image = [UIImage imageNamed:@"Wormhole.jpg"];
//create blurred image
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
//setting up Gaussian Blur (we could use one of many filters offered by Core Image)
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
[filter setValue:inputImage forKey:kCIInputImageKey];
[filter setValue:[NSNumber numberWithFloat:15.0f] forKey:@"inputRadius"];
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
//add our blurred image
backgroundView.image = [UIImage imageWithCGImage:cgImage];
Стремительный Код:
let backgroundView = UIImageView()
self.view.addSubview(backgroundView)
let image = UIImage(named: "Wormhole.jpg")
let context = CIContext(options: nil)
let inputImage = CIImage(CGImage: image!.CGImage!)
let filter = CIFilter(name: "CIGaussianBlur")
filter!.setValue(inputImage, forKey: kCIInputImageKey)
filter!.setValue(15, forKey: "inputRadius")
let result = filter!.valueForKey(kCIOutputImageKey) as? CIImage
let cgImage = context.createCGImage(result!, fromRect: inputImage.extent)
backgroundView.image = UIImage(CGImage: cgImage)
Будьте уход за дополнительной стоимости.
это цель-с правильно? как я могу сделать то же самое через Swift? :) –
Swift имеет тот же API. Просто переведите его. – zylenv