效果展示
Objective-C代码实现
#import "ViewController.h"
@interface ViewController () {
UIVisualEffectView *_visualEffectView;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self initializeUserInterface];
}
- (void)initializeUserInterface {
self.view.backgroundColor = [UIColor whiteColor];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.frame];
imageView.image = [[UIImage imageNamed:@"image.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.userInteractionEnabled = YES;
[self.view addSubview:imageView];
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(self.view.bounds) - 50, CGRectGetWidth(self.view.bounds) - 20, 30)];
slider.maximumValue = 1.0;
slider.minimumValue = 0.0;
slider.value = 1.0;
[slider addTarget:self
action:@selector(respondsToSlider:)
forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slider];
UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
_visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blur];
_visualEffectView.frame = self.view.frame;
_visualEffectView.alpha = 1.0;
_visualEffectView.userInteractionEnabled = YES;
[imageView addSubview:_visualEffectView];
}
#pragma mark - event methods
- (void)respondsToSlider:(UISlider *)slider {
_visualEffectView.alpha = slider.value;
}
@end
Swfit代码实现
import UIKit
class ViewController: UIViewController {
var visualEffectView: UIVisualEffectView?
override func viewDidLoad() {
super.viewDidLoad()
self.initializeUserInterface()
}
func initializeUserInterface() {
// 添加图片视图
let imageView = UIImageView(frame: self.view.frame)
imageView.image = UIImage(named: "image.png")
self.view.addSubview(imageView)
// 添加化滑条
let slider = UISlider(frame: CGRectMake(10, CGRectGetMaxY(self.view.bounds) - 50, CGRectGetWidth(self.view.bounds) - 20, 30))
slider.maximumValue = 1.0
slider.minimumValue = 0.0
slider.value = 1.0
slider.addTarget(self, action: Selector("respondsToSlider:"), forControlEvents: UIControlEvents.ValueChanged)
self.view.addSubview(slider)
// 实现模糊效果
let blur = UIBlurEffect(style: UIBlurEffectStyle.Light)
self.visualEffectView = ({
let visualEffectView = UIVisualEffectView(effect: blur)
visualEffectView.frame = imageView.frame
visualEffectView.userInteractionEnabled = true
visualEffectView.tag = 100
visualEffectView.alpha = 1.0
return visualEffectView
})()
imageView.addSubview(self.visualEffectView!)
}
func respondsToSlider(sender: UISlider) {
self.visualEffectView?.alpha = CGFloat(sender.value)
}
}