1

我遇到过 MBProgressHUD 和 DSActivityView 来显示 iPhone 应用程序上的黑色圆角“正在加载”类型的叠加层。

我只是想知道是否有人知道如何扩展其中任何一个来检测覆盖的点击,以便可以取消操作。

我已经看到至少一个应用程序有“加载”指示器。但是带有文本“点击取消”。

谢谢!

4

2 回答 2

27
- (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];
}
于 2012-11-14T06:08:48.067 回答
1

最简单的方法是向相关视图添加手势识别器(用于单击)(在 MBProgressHUD 的情况下,这可以是类本身,因为MBProgressHUD它是 的子类UIView)。检测到点击后,您可以触发解除方法 ( [MBProgress HUD hide])。

您可能还希望触发某种 NSNotification 以供您的应用程序使用,因为大概除了删除加载视图本身之外,您还想取消和清理您在加载期间执行的操作。

于 2011-03-27T16:45:56.707 回答