我遇到过MBProgressHUD和DSActivityView,在iPhone应用程序上显示黑色圆角“加载”类型叠加。
我只是想知道是否有人知道如何扩展其中任何一个以检测叠加层的点击,以便可以取消操作。
我看过至少有一个有“加载”指示的应用程序。但是文字“点击取消”。
谢谢!
答案 0 :(得分:26)
- (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 :(得分:1)
最简单的方法是在相关视图中添加手势识别器(单击)(在MBProgressHUD的情况下,这可以是类本身,因为MBProgressHUD
是{的子类{1}})。检测到点击后,您可以触发解雇方法(UIView
)。
您可能还想触发某种类型的NSNotification,以便您的应用程序可以接收,因为除了删除加载视图本身之外,您还需要取消并清除您在执行期间执行的操作负荷。