2014-11-04 138 views
7

有沒有辦法在屏幕的底部或頂部進行MBProgressHUD顯示?位置MBProgressHUD在屏幕的底部/頂部

我已經嘗試使用[hud setFrame:....];,initWithFrame和設置hud的center屬性來設置框架。這些都沒有奏效。嘗試這些方法後,我做了一個NSLog()幀。值已經改變,但仍然顯示在屏幕中央。

甲一點要注意,在HUD使用的UIWindow顯示:

UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject]; 
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES]; 
hud.mode = MBProgressHUDModeText; 
hud.labelText = @"some text"; 

這樣做是因爲在HUD由後臺執行塊顯示,因此,HUD可以當前在顯示器的任何視圖中顯示。

回答

16

是的,我們可以從中心底部或頂部更改MBProgressHUD視圖位置。

只需添加的yOffset財產,你將得到你想要的確切位置。

用途:

MBProgressHUD *Hud = [[MBProgressHUD alloc] init]; 
hud.yOffset = 250.0; //For bottom location. 
+0

是的,這有效。謝謝。 – kRiZ 2014-11-27 00:49:23

1

我有同樣的煩惱與SVProgressHUD原來我只是添加新的方法

+ (void)setOffsetFromCenter:(UIOffset)offset { 
[self sharedView].offsetFromCenter = offset; 
} 

,並調用它,當我發現了HUD

[SVProgressHUD setOffsetFromCenter:UIOffsetMake(0, 120)]; 

礦剛剛走了位低於屏幕中間位。嘗試一下,它是一個SingleTon,所以更容易調用show和remove。

+1

謝謝,但我不得不做出很多改變MBProgressHUD這個工作的。自從使用pod後,無法進行更改。 – kRiZ 2014-11-04 21:58:55

+0

最佳答案狀態你可以改變,我必須建議你使用這個單身人士。 – 2014-11-04 22:58:45

0

沒有它不是更多鈔票來改變MBProgressHUD的位置頂部或bottom.refer這link

0

我們可以在yOffsetxOffset通過改變而改變的MBProgressHUD位置。 下面的代碼行是放置在底部的MBProgressHUD

let hud = MBProgressHUD.showAdded(to: view, animated: true) 
hud?.mode = .text 
hud?.labelText = json!["message"] as! String 
hud?.yOffset = Float(view.frame.size.height*2/5); 
hud?.removeFromSuperViewOnHide = true 
hud?.margin = 10.0 
hud?.hide(true, afterDelay: 2) 
0

斯威夫特4,改變hud.offset.xhud.offset.y

let hud = MBProgressHUD.showAdded(to: self.view, animated: true) 
hud.mode = MBProgressHUDMode.annularDeterminate 
hud.offset.y = 10 
hud.offset.x = 10