MBProgressHud 换行显示

一般来说,app里面的单纯的文本提示信息不会太长,一行肯定可以显示完全,所以用MBProgressHud在加上一个类扩展MBProgressHUD+Extension基本上都可以满足需求


MBProgressHUD+Extension.h .png

这样子的类扩展可能很多人都见过,但是在最近的项目里面出现了由于要显示的提示信息过长,被省略,信息显示不全的情况,故添加了几个方法。专门用来显示文本信息,可以做到自适应文本大小。


MBProgressHUD+Extension.h .png

不多说,代码如下:
.h

+(void)showXYMessage:(NSString *)text;
+(void)showXYMessage:(NSString *)text delay:(NSTimeInterval )time;
+(void)showXYMessage:(NSString *)text toView:(UIView *)view;
+(void)showXYMessage:(NSString *)text toView:(UIView *)view delay:(NSTimeInterval )time;
@end

.m


+(void)showXYMessage:(NSString *)text{
    [self showXYMessage:text toView:nil delay:1.5f];
}

+(void)showXYMessage:(NSString *)text delay:(NSTimeInterval )time{
    [self showXYMessage:text toView:nil delay:time];
}

+(void)showXYMessage:(NSString *)text toView:(UIView *)view delay:(NSTimeInterval )time{
    if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
    
    
    CGFloat width = view?view.bounds.size.width - 20:[UIScreen mainScreen].bounds.size.width- 2*30;
    CGFloat height = view?view.bounds.size.height - 20:[UIScreen mainScreen].bounds.size.width- 2*30;
    // 快速显示一个提示信息
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
    
    CGSize size = [text boundingRectWithSize:CGSizeMake(width, height) options:(NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:11]} context:nil].size;//修改字体大小(下面同步修改)
    
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, size.width<width?size.width:width, size.height)];
    label.text = text;
    label.font = [UIFont systemFontOfSize:11];//修改字体大小(上面同步修改)
    label.textColor = [UIColor whiteColor];//修改字体颜色
    label.numberOfLines = 0;
    label.textAlignment = NSTextAlignmentCenter;
    hud.customView = label;
    hud.mode = MBProgressHUDModeCustomView;
    [hud setUserInteractionEnabled:false];
    // 隐藏时候从父控件中移除
    hud.removeFromSuperViewOnHide = YES;
    //    hud.square = true;
    hud.margin = 10.0f;
    // time秒之后再消失
    [hud hideAnimated:YES afterDelay:time];
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(time * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self hideHUDForView:view];
    });
}


+(void)showXYMessage:(NSString *)text toView:(UIView *)view{
    [self showXYMessage:text toView:view delay:1.5f];
}

@end
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,056评论 3 119
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,702评论 4 61
  • 今天的温度着实有点冷,上午准备材料,讲课,下午跟往常一样,去特教上课,我的孩子们越来越乖巧,越来越会撒娇,越来越调...
    王凯燕阅读 1,081评论 0 0
  • 没有一件事不需付出汗水和心血就能做好的,就像我考驾照,科目一、二、三都是一次性过的,他们认为我只是运气好而已,其实...
    记录自己的见闻阅读 5,899评论 0 0
  • 刚刚查了今年的专科录取分数线,心有点凉,因为我是个学渣,分考的也着实不高,可我报的都是医学院,是不是作死,但...
    一杯芬达阅读 1,603评论 0 3

友情链接更多精彩内容