代码如下:
.h中的代码:
//// HKUIToolsView.h// HKUIToolsDemo//// Created by isHakan on 2017/7/28.// Copyright ? 2017年 liuhuakun. All rights reserved.//#import <UIKit/UIKit.h>@interface HKUIToolsView : UIView/*移除加载类型的view */- (void)removeLoadViewFromSuperView;/* *@msg 输入的需要提示文字 *@typeNum 选择控件类型 /// 0代表中间方形文字提示框 1等待加载view 2底部条形文字提示框 **/- (instancetype)initWithFrame:(CGRect)frame withMsg:(NSString *)msg andType:(NSInteger)typeNum;@end
.m中的代码:
//// HKUIToolsView.m// HKUIToolsDemo//// Created by isHakan on 2017/7/28.// Copyright ? 2017年 liuhuakun. All rights reserved.//#import "HKUIToolsView.h"@interface HKUIToolsView (){ NSTimer *_loadViewTimeoutTimer;}@end
@implementation HKUIToolsView- (instancetype)initWithFrame:(CGRect)frame withMsg:(NSString *)msg andType:(NSInteger)typeNum{ self = [super initWithFrame:frame]; if (self) { UIView *mainScreenBgView = [[UIView alloc] initWithFrame:frame]; mainScreenBgView.alpha = 0.3; mainScreenBgView.backgroundColor = [UIColor blackColor]; [self addSubview:mainScreenBgView]; [self createView:frame andMsg:msg andType:typeNum]; } return self;}
//加载中和中间提示msg- (void)createView:(CGRect)frame andMsg:(NSString *)msg andType:(NSInteger)typeNum{ CGFloat w,h,x,y; if (typeNum==0 || typeNum==1) { w = frame.size.width/3.0; h = w; x = (frame.size.width-w)/2.0; y = (frame.size.height-h)/2.0; } else { w = frame.size.width*0.6; h = 60.0; x = (frame.size.width-w)/2.0; y = frame.size.height-h-32.0; } UIView *centerMsgView = [[UIView alloc] initWithFrame:CGRectMake(x, y, w, h)]; centerMsgView.backgroundColor = [UIColor blackColor]; centerMsgView.layer.masksToBounds = YES; centerMsgView.layer.cornerRadius = 8.0; [self addSubview:centerMsgView]; if (typeNum==0 || typeNum==2) { CGFloat label_x,label_y,label_w,label_h; label_x = label_y = 8; label_w = w-16; label_h = h-16; UILabel *msgLabel = [[UILabel alloc] initWithFrame:CGRectMake(label_x, label_y, label_w, label_h)]; msgLabel.backgroundColor = centerMsgView.backgroundColor; msgLabel.textColor = [UIColor whiteColor]; msgLabel.font = [UIFont systemFontOfSize:14]; msgLabel.text = msg; msgLabel.numberOfLines = 0; msgLabel.textAlignment = NSTextAlignmentCenter; [centerMsgView addSubview:msgLabel]; [UIView animateWithDuration:2.5 animations:^{ self.alpha = 0; [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(removeSlef:) userInfo:nil repeats:NO]; }]; } else//加载view { CGFloat actIndView_w = w-32; CGFloat actIndView_h = h-32; CGFloat actIndView_x = 16; CGFloat actIndView_y = 0; UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; activityIndicatorView.frame = CGRectMake(actIndView_x, actIndView_y, actIndView_w, actIndView_h); activityIndicatorView.backgroundColor = [UIColor blackColor]; activityIndicatorView.tag = 111; [activityIndicatorView startAnimating]; [centerMsgView addSubview:activityIndicatorView]; CGFloat acIndLabel_w,acIndLabel_h,acIndLabel_x,acIndLabel_y; acIndLabel_x = actIndView_x; acIndLabel_y = actIndView_h*2/3.0; acIndLabel_w = actIndView_w; acIndLabel_h = actIndView_h/3.0; UILabel *msgLabel = [[UILabel alloc] initWithFrame:CGRectMake(acIndLabel_x, acIndLabel_y, acIndLabel_w, acIndLabel_h)]; msgLabel.backgroundColor = [UIColor blackColor]; msgLabel.textColor = [UIColor whiteColor]; msgLabel.textAlignment = NSTextAlignmentCenter; msgLabel.text = msg; msgLabel.font = [UIFont systemFontOfSize:14.0]; [centerMsgView addSubview:msgLabel]; _loadViewTimeoutTimer = [NSTimer scheduledTimerWithTimeInterval:8 target:self selector:@selector(removeLoadViewFromSuperView) userInfo:nil repeats:NO]; } }
- (void)removeSlef:(NSTimer *)timer{ [timer invalidate]; [self removeFromSuperview];}//加载超时隐藏- (void)removeLoadViewFromSuperView{ if ([_loadViewTimeoutTimer isValid]) { [_loadViewTimeoutTimer invalidate]; } [UIView animateWithDuration:1.5 animations:^{ self.alpha = 0; [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(removeLoadView:) userInfo:nil repeats:NO]; }];}- (void)removeLoadView:(NSTimer *)timer{ [timer invalidate]; UIActivityIndicatorView *indicatorView = [self viewWithTag:111]; [indicatorView stopAnimating]; [self removeFromSuperview];}@end
在需要调用对应控件的界面处,
//// ViewController.m// HKUIToolsDemo//// Created by isHakan on 2017/7/28.// Copyright ? 2017年 liuhuakun. All rights reserved.//#import "ViewController.h"#import "HKUIToolsView.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. }- (IBAction)centerPointViewShowBtnClick:(UIButton *)sender{ [self showToolMsg:@"中心提示信息显示!" viewTag:sender.tag];}- (IBAction)loadViewShow:(UIButton *)sender{ [self showToolMsg:@"加载中..." viewTag:sender.tag];}- (IBAction)bottomPointViewShow:(UIButton *)sender{ [self showToolMsg:@"底部提示信息提示!" viewTag:sender.tag];}- (void)showToolMsg:(NSString *)msg viewTag:(NSInteger)viewTag{ HKUIToolsView *toolsView = [[HKUIToolsView alloc] initWithFrame:[UIScreen mainScreen].bounds withMsg:msg andType:viewTag]; toolsView.tag = 222; [[UIApplication sharedApplication].keyWindow addSubview:toolsView];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end