效果图如下:
//alpha 0.0 白色 alpha 1 :黑色 alpha 0~1 :遮罩颜色,逐渐
self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.4];
代码如下:
#import "TFMaskView.h"
@interface TFMaskView()
{
UIView *_backGroundView;
}
@end
@implementation TFMaskView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
[self loadMaskView];
[self initBtnView];
}
return self;
}
- (void)loadMaskView
{
self.frame = CGRectMake(0, 0, kDEVICEWIDTH, kDEVICEHEIGHT);
self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.4];
self.userInteractionEnabled = YES;
[self addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissHintView)]];
_backGroundView = [[UIView alloc] init];
_backGroundView.backgroundColor = [UIColor clearColor];
_backGroundView.frame = CGRectMake(0, 0, kDEVICEWIDTH, kDEVICEHEIGHT);
[self addSubview:_backGroundView];
//self.alpha = 0.0;
}
- (void)initBtnView
{
UIView *_mainView = [[UIView alloc]initWithFrame:CGRectMake(15, 64, kDEVICEWIDTH - 30, 200)];
_mainView.backgroundColor = [UIColor whiteColor];
[_backGroundView addSubview:_mainView];
UIButton *_checkOrderDetailBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 60, kDEVICEWIDTH - 30, 48)];
_checkOrderDetailBtn.backgroundColor = [CHUtil colorWithHexString:@"eaeaea"];
[_checkOrderDetailBtn addTarget:self action:@selector(checkOrderDetailBtnClick) forControlEvents:UIControlEventTouchUpInside];
[_checkOrderDetailBtn setTitle:@"查看详情" forState:UIControlStateNormal];
_checkOrderDetailBtn.titleLabel.textColor = [UIColor whiteColor];
_checkOrderDetailBtn.layer.cornerRadius = 4;
[_mainView addSubview:_checkOrderDetailBtn];
UIButton *_startOrderBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 130, kDEVICEWIDTH - 30, 48)];
_startOrderBtn.backgroundColor = [CHUtil colorWithHexString:@"0b8ef0"];;
[_startOrderBtn addTarget:self action:@selector(startOrderBtnClick) forControlEvents:UIControlEventTouchUpInside];
[_startOrderBtn setTitle:@"立即支付" forState:UIControlStateNormal];
_startOrderBtn.titleLabel.textColor = [UIColor whiteColor];
_startOrderBtn.layer.cornerRadius = 4;
[_mainView addSubview:_startOrderBtn];
}
#pragma mark -- clicked method
- (void)checkOrderDetailBtnClick
{
CHDebugLog(@"---checkOrderDetailBtnClick----");
}
- (void)startOrderBtnClick
{
CHDebugLog(@"----startOrderBtnClick---");
}
#pragma mark -- show or dismiss View
- (void)showHintView
{
[[UIApplication sharedApplication].delegate.window.rootViewController.view addSubview:self];
self.alpha = 0.0;
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
self.alpha = 1.0;
} completion:^(BOOL finished)
{
}];
}
- (void)dismissHintView
{
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
self.alpha = 0.0;
} completion:^(BOOL finished){
[self removeFromSuperview];
}];
}
@end