题记:实现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
// 这个暂时还没去弄,有空了加上