2014-11-04 4 views
7

Есть ли способ сделать шоу MBProgressHUD внизу или сверху экрана?Позиция MBProgressHUD внизу/в верхней части экрана

Я попытался установить рамку с помощью [hud setFrame:....];, initWithFrame и установить center свойство hud. Ничего из этого не сработало. После проверки этих методов я сделал NSLog(). Значения изменились, но хед все еще отображается в центре экрана.

Вещь отметить, ИЛС отображается с помощью 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 property of MBProgressHUD и получите точное место по своему расположению.

Использование:

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

Да, это работает. Благодарю. – kRiZ

1

Я была такая же проблема с SVProgressHUD получается, я просто должен был добавить новый метод

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

и назвать его, когда я показал HUD

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

Mine просто должен был пойти бит ниже среднего экрана. Попробуйте, это SingleTon, так что проще вызвать шоу и удалить. не

+1

Спасибо, но я должен был бы сделать много изменений в MBProgressHUD для этой работы. Не могу делать изменения, так как я использую контейнеры. – kRiZ

+0

Лучшие ответы на вопросы, которые вы можете изменить, я должен порекомендовать вам использовать этот синглтон. –

0

Нет его не Возможное изменить положение MBProgressHUD к началу или bottom.refer это link

0

Мы можем изменить положение MBProgressHUD через изменения в yOffset и xOffset. Ниже строки кода для места 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

для Swift 4, изменил hud.offset.x и hud.offset.y

let hud = MBProgressHUD.showAdded(to: self.view, animated: true) 
hud.mode = MBProgressHUDMode.annularDeterminate 
hud.offset.y = 10 
hud.offset.x = 10 
Смежные вопросы