/*
FXBlurView属性
@property (nonatomic, getter = isBlurEnabled) BOOL blurEnabled;
这个属性切换为个体FXBlurView实例模糊了。模糊是默认启用。注意,如果您使用+ setBlurEnabled方法禁用模糊那将会覆盖该设置。
@property (nonatomic, getter = isDynamic) BOOL dynamic;
这个属性控制是否FXBlurView更新动态,或者只有一次当视图添加到它的父视图。默认值为YES。注意,如果动态设置为不,你仍然可以迫使视图更新通过调用setNeedsDisplay或updateAsynchronously:completion:完成。动态模糊极其cpu密集型任务,因此你应该禁用动态视图立即执行一个动画之前,以避免卡顿。然而,如果你有多个FXBlurViews屏幕上那么简单的禁用更新使用setUpdatesDisabled方法而不是设置动态属性。
@property (nonatomic, assign) NSUInteger iterations;
模糊迭代的数量。更多的迭代改进了但质量降低了性能。默认为2的迭代。
@property (nonatomic, assign) NSTimeInterval updateInterval;
这个控件之间的时间间隔(以秒为单位)连续更新当FXBlurView在动态模式下操作。这个默认为0,这意味着FXBlurView将尽快更新。这收益最好的帧速率,但也很耗CPU, 这可能导致应用程序的其他性能降低,尤其是在旧设备。要实现这一点,试着增加updateInterval的数值。
@property (nonatomic, assign) CGFloat blurRadius;
这个属性控制模糊效果的半径(点)。默认为40点的半径,这是类似于iOS 7模糊效果。
@property (nonatomic, strong) UIColor *tintColor;
这在一个可选的色调颜色应用于FXBlurView。颜色的RGB分量将混合模糊图像,导致温和的色彩。不同色彩的强度效应,使用光明或黑暗的颜色。对tintColor透明度(alpha)的设置会被忽略。如果您不希望应用色彩,将这个值设置为零或(用户界面颜色clearColor]。请注意,如果您正在使用Xcode 5以上,FXBlurViews接口中创建默认构建器将有一个蓝色的色调。
@property (nonatomic, weak) UIView *underlyingView;
这个属性指定视图FXBlurView将示例创建模糊效果。如果设置为零(默认),这将是模糊视图的父视图本身,但你可以重写它如果你需要的话。
*/
FXBlurView是UIView的子类,它实现毛玻璃效果的原理其实就是覆盖上一层FXBlurView的实例对象。
- (void)viewDidLoad {
[super viewDidLoad];
UIImageView * imageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
imageView.image = [UIImage imageNamed:@"Default-Port-hd47"];
[self.view addSubview:imageView];
FXBlurView * aview = [[FXBlurView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
aview.tintColor = [UIColor whiteColor]; //前景颜色
aview.blurRadius = 20.0; //模糊半径
aview.dynamic = YES; //动态改变模糊效果
[self.view addSubview:aview];
FXBlurView * bview = [[FXBlurView alloc] initWithFrame:CGRectMake(0, 120, 100, 100)];
bview.tintColor = [UIColor whiteColor]; //前景颜色
bview.blurEnabled = YES; //是否允许模糊,默认YES
bview.blurRadius = 10.0; //模糊半径
bview.dynamic = YES; //动态改变模糊效果
bview.iterations = 2; //迭代次数:
bview.updateInterval = 2.0; //更新时间(不确定具体功能)
/*
blurRadius = 1.0 && dynamic = 100 的效果和 blurRadius = 10.0 && dynamic = 1的效果大致相同
*/
[self.view addSubview:bview];
FXBlurView * cview = [[FXBlurView alloc] initWithFrame:CGRectMake(150, 0, 200, 200)];
cview.blurRadius = 20.0;
cview.tintColor = [UIColor whiteColor];
[self.view addSubview:cview];
}
/////////////////////////////////////////
使用的代码片段:
class LeftViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
var backgroundImageView:UIImageView?
var frostedView = FXBlurView()
fileprivate var _tableView :UITableView!
fileprivate var tableView: UITableView {
get{
if(_tableView != nil){
return _tableView!;
}
_tableView = UITableView();
_tableView.backgroundColor = UIColor.clear
_tableView.estimatedRowHeight=100;
_tableView.separatorStyle = UITableViewCellSeparatorStyle.none;
regClass(self.tableView, cell: LeftUserHeadCell.self)
regClass(self.tableView, cell: LeftNodeTableViewCell.self)
regClass(self.tableView, cell: LeftNotifictionCell.self)
_tableView.delegate = self;
_tableView.dataSource = self;
return _tableView!;
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = V2EXColor.colors.v2_backgroundColor;
self.backgroundImageView = UIImageView()
self.backgroundImageView!.frame = self.view.frame
self.backgroundImageView!.contentMode = .scaleToFill
view.addSubview(self.backgroundImageView!)
//这个属性指定视图FXBlurView将示例创建模糊效果。如果设置为零(默认),这将是模糊视图的父视图 本身,但你可以重写它如果你需要的话。
frostedView.underlyingView = self.backgroundImageView!
frostedView.isDynamic = false
frostedView.tintColor = UIColor.black
frostedView.frame = self.view.frame
self.view.addSubview(frostedView)
self.view.addSubview(self.tableView);
self.tableView.snp.makeConstraints{ (make) -> Void in
make.top.right.bottom.left.equalTo(self.view);
}
'FXBlurView', '~> 1.6.4'