MBProgressHUD или DSActivityView - нажмите, чтобы отменить - PullRequest
1 голос
/ 27 марта 2011

Я сталкивался как с MBProgressHUD, так и с DSActivityView, чтобы показать накладываемые черным закругленным углом наложения типа «Загрузка» в приложении для iPhone.

Мне просто интересно, знает ли кто-нибудь, как расширить любой из них, чтобы обнаружить касание наложения, чтобы действие можно было отменить.

Я видел по крайней мере одно приложение с индикатором «Загрузка». Но с текстом «Нажмите, чтобы отменить».

Спасибо!

Ответы [ 2 ]

26 голосов
/ 14 ноября 2012
- (void)showHUDWithCancel:(NSString *)aMessage {
    self.HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    self.HUD.labelText = aMessage;
    self.HUD.detailsLabelText = @"Tap to cancel";
    [self.HUD addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hudWasCancelled)]];
}

- (void)hudWasCancelled {
    [self.HUD hide:YES];
}
1 голос
/ 27 марта 2011

Самый простой способ сделать это - добавить распознаватель жестов (для одного касания) в соответствующее представление (в случае MBProgressHUD это может быть сам класс, поскольку MBProgressHUD является подклассом UIView ). При обнаружении касания вы можете активировать метод увольнения ([MBProgress HUD hide]).

Вы, вероятно, также захотите запустить какое-либо NSNotification для своего приложения, чтобы оно могло быть использовано, потому что, предположительно, помимо удаления самого представления загрузки, вы также захотите отменить и очистить операцию, которую вы выполняли во время выполнения. нагрузка.

...