通常我们总会遇到需要将当前View的背景设置为黑透效果,有两种方法实现,先讲第一种方法,当前的viewController上直接添加一层view作为背景
- 效果图
我们具体看下代码的实现:
ViewController.m
//
// ViewController.m
// blog01_View黑透效果
//
// Created by yanll on 15/11/5.
// Copyright © 2015年 yanll. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic,strong) UIView *fullScreenView; //整个屏幕宽高的View
@property (nonatomic,strong) UIView *alertView;//最上层显示的View
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//这里一定要先加载背景再加载需要显示的View,或者将view加载到fullScreenView的子视图上
[self.view addSubview:self.fullScreenView];
[self.view addSubview:self.alertView];
// [self.fullScreenView addSubview:self.alertView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
#pragma mark - getter 通过懒加载的方式初始化
- (UIView *)fullScreenView {
if (!_fullScreenView) {
_fullScreenView = [[UIView alloc] initWithFrame:self.view.frame];
_fullScreenView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.47];//设置view的背景色和透明度,调节alpha可以调节背景黑的程度
}
return _fullScreenView;
}
- (UIView *)alertView {
if (!_alertView) {
_alertView = [[UIView alloc] init];
//设置alertView的尺寸大小
_alertView.bounds = CGRectMake(0, 0, 200, 200);
//设置alertView的中心点位于屏幕中心点
_alertView.center = self.view.center;
_alertView.backgroundColor = [UIColor redColor];
}
return _alertView;
}
@end
上面的alertView可以换成各种控件,根据你的项目情况来定,比如点击后出现搜索框并将屏幕设置为黑透,还可以自定义弹出框,不使用系统提供的UIAlertController,此界面只是在当前的viewController上添加的view,如果你需要跳转界面(viewController)的背景也设置为黑透,请看下一篇文章