MBProgressHUD не остается на экране в течение назначенного времени с помощью hide afterDelay

#ios #xcode #mbprogresshud

#iOS #xcode #mbprogresshud

Вопрос:

Я довольно долго искал SO в поисках решения (плюс много времени на устранение этой проблемы самостоятельно.) Я пытаюсь создать всплывающее сообщение общего назначения для использования в разных местах моего приложения, но у меня возникают проблемы с сохранением сообщения на экране. В частности, я пытаюсь оставить сообщение на экране на 2 секунды, прежде чем оно автоматически исчезнет. Для этого я использую MBProgressHUD. Вот мой код:

 -(void)showMessage{
    MBProgressHUD *buttonClickMessage;
    buttonClickMessage = [[MBProgressHUD alloc] initWithView:self.view];
    buttonClickMessage.labelText = @"Test";
    buttonClickMessage.mode = MBProgressHUDModeText;
    [self.view addSubview:buttonClickMessage];
    [buttonClickMessage show:YES];
    [buttonClickMessage hide:YES afterDelay:10];
}
  

Каждый раз, когда я пытаюсь вызвать [self showMessage] свой код, сообщение только ненадолго появляется на экране, т. Е.: оно не длится 10 секунд, как указано в коде, который я включил выше. Кто-нибудь знает, почему? Спасибо.

Кроме того, вот код из MBProgressHUD:

 - (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay {
    [self performSelector:@selector(hideDelayed:) withObject:[NSNumber numberWithBool:animated] afterDelay:delay];
}

- (void)hideDelayed:(NSNumber *)animated {
    [self hide:[animated boolValue]];
}
  

Комментарии:

1. Я мало что знаю MBProgressHUD , но поможет ли вам calling: [self.view bringSubviewToFront:buttonClickMessage]; ?

2. Нет, представление отображается нормально, проблема связана с тем, что оно отображается только на долю секунды, прежде чем исчезнуть.

3. Вы уверены, что это не проблема MBProgressHUD ?

4. Это возможно. Я опубликовал код из MBProgressHUD выше.

5. Хм, я не вижу ничего плохого в этом коде на самом деле