MBProgressHUD实现换行显示文字同时带自定义图片

题记:实现MBProgress在非纯文本模式下(HUD.mode = MBProgressHUDModeText<--不是这个模式下)的文字换行。因为项目需求,然后网上找了找,没找到方案, 决定自己搞一搞。

问题:MBProgres带的label(或者detailLabel)设置numberOfLine = 0,没软用的,不会根据上方自定义image或者菊花的宽度来换行,下面上图看一看问题

Condition1:在HUD.squre = No的情况下,HUD变成一个长方形,不行!

Condition2:在HUD.squre = YES的情况下,HUD变成一个正方形,这个是我想要的,但是一看,太大太空了,不行!

思路:在label的字增多的情况下,当边距到达一定值发现终于开始换行了,下面是图,那问题找到了,就是与addToView 的view有关系,根据View来设定HUD 的大小,下面给出简单的实现方案。

解决方案一:在HUD下自定义一个父视图,把HUD加到自己定义的View上,就减少了边距,自然能在小个正方形下换行了,最大的Size取决于你定义View的Size,下面是效果图合代码

下面上代码:

// HUDBgView

UIView *bgView = [[UIView alloc]initWithFrame:CGRectMake(195 / 2, 200, 170,170)];

bgView.backgroundColor = [UIColor clearColor];

[self.view addSubview:bgView];

bgView.userInteractionEnabled = NO;

// initHUD

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:bgView animated:YES];

hud.userInteractionEnabled = NO;

hud.backgroundColor = [UIColor clearColor];

hud.animationType = MBProgressHUDAnimationZoomOut;

hud.detailsLabel.text = @"赶紧换行吧,赶紧换行吧,赶紧换行吧,赶紧换行吧,赶紧换行吧,";

hud.square = YES;

hud.mode = MBProgressHUDModeCustomView;

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"hud_success"]];

hud.customView = imageView;

[hud hideAnimated:YES afterDelay:3.0];

解决方案二:自定义CustomView,里面带Label和Image

// 这个暂时还没去弄,有空了加上

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 源码来源:gitHub源码 转载于: CocoaChina 来源:南峰子的技术博客 版本:0.9.1 MBPr...
    李小六_阅读 6,466评论 2 5
  • 版本记录 前言 在我们的app项目中,为了增加和用户很好的交互能力,通常都需要加一些提示图,比如说,当我们需要网络...
    刀客传奇阅读 1,343评论 0 1
  • 泰国旅游局发布了关于十月前来泰国旅行的建议,呼吁所有在皇家葬礼期间到访泰国的人们保持尊重,且行为举止得体。 该建议...
    成都软生活阅读 252评论 0 0
  • css实现三角形是个非常有意思的事情。 先看看如果 width height都为0,边框不为零的时候,浏览器是如何...
    yongningfu阅读 220评论 0 0
  • 这个月好像过的比以往哪一个月都要慢。慢到觉得这个四月并没有白过。 每周的一篇写作就像是打卡任务一样。有期待,又有些...
    小西瓜彭彭阅读 418评论 0 0