Вы можете добавить это к классу по своему вкусу:
+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title {
UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
hud.labelText = title;
return hud;
}
+ (void)dismissGlobalHUD {
UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
[MBProgressHUD hideHUDForView:window animated:YES];
}
Это может быть вызвано для любого класса. Вам не нужно сохранять строгую ссылку на HUD при использовании этих методов удобства класса.
В зависимости от вашей конкретной ситуации, вы, вероятно, также захотите обрабатывать случаи, когда новый hud запрашивается до того, как другой будет скрыт. Вы можете скрыть предыдущий hud, когда появляется новый или появляется какая-то очередь и т. Д.
Скрытие предыдущего экземпляра HUD перед показом нового довольно просто.
+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title {
UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
[MBProgressHUD hideAllHUDsForView:window animated:YES];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
hud.labelText = title;
return hud;
}
Вы можете установить форму .StartPosition
значение FormStartPosition.Manual
, а затем установите для свойства Form.Location
желаемое местоположение. Когда вы звоните ShowDialog
, форма должна отображаться в желаемом месте.
MyForm frm = new MyForm();
frm.StartPosition = FormStartPosition.Manual;
frm.Location = new Point(10, 10);
frm.ShowDialog();
Я предполагаю, что вы используете форму, и в этом случае вы можете использовать перечисление Form.StartPosition. Вы можете найти больше об этом здесь и о поведении перечисления здесь .
Попробуйте использовать свойство StartPosition в форме.