大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了iOS如何实现在状态栏上显示提醒信息的功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
创新互联服务项目包括堆龙德庆网站建设、堆龙德庆网站制作、堆龙德庆网页制作以及堆龙德庆网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,堆龙德庆网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到堆龙德庆省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
先看效果图
实现这个效果,用到了JDStatusBarNotification,这是一个易于使用和定制的在状态栏上显示提醒信息的控件,可自定义颜色、字体以及动画,支持进度条展示,并可以显示活动指示器。
假设这么一个场景,需要调接口修改个人资料,这时有3个状态,正在修改、修改成功、修改失败。我们可以写一个公共类,方便调用,譬如 NSObject+Common。
.h文件写方法
#import@interface NSObject (Common) - (void)showStatusBarQueryStr:(NSString *)tipStr; - (void)showStatusBarSuccessStr:(NSString *)tipStr; //此方法在实际开发中调用,调接口失败返回的error - (void)showStatusBarError:(NSError *)error; //... - (void)showStatusBarErrorStr:(NSString *)tipStr; @end
.m文件实现方法
#import "NSObject+Common.h" #import "JDStatusBarNotification.h" @implementation NSObject (Common) //error返回的tipStr - (NSString *)tipFromError:(NSError *)error { if (error && error.userInfo) { NSMutableString *tipStr = [[NSMutableString alloc] init]; if ([error.userInfo objectForKey:@"msg"]) { NSArray *msgArray = [[error.userInfo objectForKey:@"msg"] allValues]; NSUInteger num = [msgArray count]; for (int i = 0; i < num; i++) { NSString *msgStr = [msgArray objectAtIndex:i]; if (i+1 < num) { [tipStr appendString:[NSString stringWithFormat:@"%@\n", msgStr]]; }else{ [tipStr appendString:msgStr]; } } }else{ if ([error.userInfo objectForKey:@"NSLocalizedDescription"]) { tipStr = [error.userInfo objectForKey:@"NSLocalizedDescription"]; }else{ [tipStr appendFormat:@"ErrorCode%ld", (long)error.code]; } } return tipStr; } return nil; } - (void)showStatusBarQueryStr:(NSString *)tipStr { [JDStatusBarNotification showWithStatus:tipStr styleName:JDStatusBarStyleSuccess]; [JDStatusBarNotification showActivityIndicator:YES indicatorStyle:UIActivityIndicatorViewStyleWhite]; } - (void)showStatusBarSuccessStr:(NSString *)tipStr { if ([JDStatusBarNotification isVisible]) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [JDStatusBarNotification showActivityIndicator:NO indicatorStyle:UIActivityIndicatorViewStyleWhite]; [JDStatusBarNotification showWithStatus:tipStr dismissAfter:1.5 styleName:JDStatusBarStyleSuccess]; }); }else{ [JDStatusBarNotification showActivityIndicator:NO indicatorStyle:UIActivityIndicatorViewStyleWhite]; [JDStatusBarNotification showWithStatus:tipStr dismissAfter:1.0 styleName:JDStatusBarStyleSuccess]; } } - (void)showStatusBarError:(NSError *)error { if ([JDStatusBarNotification isVisible]) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [JDStatusBarNotification showActivityIndicator:NO indicatorStyle:UIActivityIndicatorViewStyleWhite]; [JDStatusBarNotification showWithStatus:[self tipFromError:error] dismissAfter:1.5 styleName:JDStatusBarStyleError]; }); }else{ [JDStatusBarNotification showActivityIndicator:NO indicatorStyle:UIActivityIndicatorViewStyleWhite]; [JDStatusBarNotification showWithStatus:[self tipFromError:error] dismissAfter:1.5 styleName:JDStatusBarStyleError]; } } - (void)showStatusBarErrorStr:(NSString *)tipStr { if ([JDStatusBarNotification isVisible]) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [JDStatusBarNotification showActivityIndicator:NO indicatorStyle:UIActivityIndicatorViewStyleWhite]; [JDStatusBarNotification showWithStatus:tipStr dismissAfter:1.5 styleName:JDStatusBarStyleError]; }); }else{ [JDStatusBarNotification showActivityIndicator:NO indicatorStyle:UIActivityIndicatorViewStyleWhite]; [JDStatusBarNotification showWithStatus:tipStr dismissAfter:1.5 styleName:JDStatusBarStyleError]; } }
调用方法
[self showStatusBarQueryStr:@"正在修改个人信息"];
[self showStatusBarSuccessStr:@"个人信息修改成功"];
//[self showStatusBarError:error]; [self showStatusBarErrorStr:@"修改失败"];
感谢你能够认真阅读完这篇文章,希望小编分享的“iOS如何实现在状态栏上显示提醒信息的功能”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!