• 注册
当前位置:1313e > 默认分类 >正文

iOS自定义一些提示控件

自己自定义了一些最常用的控件,效果如下。这些控件是非常简单的,但是在一般开发过程中,很多人都比较喜欢直接拉一个第三方来实现。(如在做加载控件时都喜欢使用MBProgressHUD库),不曾想就为了这一个小小的控件把人家的整份代码都copy过来。对于追求能自己写就尽量自己写的我来说,起码在使用加载控件时,我是不能忍受的。所以简简单单封装了一套:

代码如下:

 

.h中的代码: 

//
//  HKUIToolsView.h
//  HKUIToolsDemo
//
//  Created by isHakan on 2017/7/28.
//  Copyright © 2017年 liuhuakun. All rights reserved.
//

#import @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:3.0 animations:^{self.alpha=0;} completion:^(BOOL finished) {[self removeFromSuperview];}];}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:45.0target:selfselector:@selector(removeLoadViewFromSuperView) userInfo:nilrepeats:NO];}}//加载超时隐藏
- (void)removeLoadViewFromSuperView
{if ([_loadViewTimeoutTimer isValid]){[_loadViewTimeoutTimer invalidate];}[UIView animateWithDuration:2.5 animations:^{self.alpha=0;} completion:^(BOOL finished) {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

转载于:https://www.cnblogs.com/liuhuakun/p/7251691.html

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录
相关推荐