題記:實(shí)現(xiàn)MBProgress在非純文本模式下(HUD.mode = MBProgressHUDModeText<--不是這個(gè)模式下)的文字換行。因?yàn)轫?xiàng)目需求,然后網(wǎng)上找了找,沒(méi)找到方案, 決定自己搞一搞。
問(wèn)題:MBProgres帶的label(或者detailLabel)設(shè)置numberOfLine = 0,沒(méi)軟用的,不會(huì)根據(jù)上方自定義image或者菊花的寬度來(lái)?yè)Q行,下面上圖看一看問(wèn)題
Condition1:在HUD.squre = No的情況下,HUD變成一個(gè)長(zhǎng)方形,不行!

Condition2:在HUD.squre = YES的情況下,HUD變成一個(gè)正方形,這個(gè)是我想要的,但是一看,太大太空了,不行!

思路:在label的字增多的情況下,當(dāng)邊距到達(dá)一定值發(fā)現(xiàn)終于開(kāi)始換行了,下面是圖,那問(wèn)題找到了,就是與addToView 的view有關(guān)系,根據(jù)View來(lái)設(shè)定HUD 的大小,下面給出簡(jiǎn)單的實(shí)現(xiàn)方案。

解決方案一:在HUD下自定義一個(gè)父視圖,把HUD加到自己定義的View上,就減少了邊距,自然能在小個(gè)正方形下?lián)Q行了,最大的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
// 這個(gè)暫時(shí)還沒(méi)去弄,有空了加上