我需要阻止界面,直到MBProgressHUD操作完成.我确实引用了这个帖子,
根据它,我们应该禁用每个不适合我的项目.我的情况是我需要禁止用户点击后退按钮.我确实试过HUD.userInteractionEnabled = YES禁用除后退按钮之外的每个控制器.有没有办法阻止用户从该控制器弹出?
问候,
迪尔森
我已经阅读并阅读了关于此的内容,我似乎无法找到符合我情况的任何内容.
当视图出现时我已经加载了MBProgressHUD,因为我的应用程序会立即获取一些web服务数据.我的问题是我的导航控制器上的后退按钮在显示HUD时没有响应(因此当应用程序获取其数据时).我希望用户能够点击以解除(或者在最坏的情况下能够点击后退按钮)以获得结果,如果这是无休止的等待.这是我的代码,只要视图出现就会运行:
#ifdef __BLOCKS__
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
hud.labelText = @"Loading";
hud.dimBackground = NO;
hud.userInteractionEnabled = YES;
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
// Do a task in the background
NSString *strURL = @"http://WEBSERVICE_URL_HERE";
//All the usual stuff to get the data from the service in here
NSDictionary* responseDict = [json objectForKey:@"data"]; // Get the dictionary
NSArray* resultsArray = [responseDict objectForKey:@"key"];
// Hide the HUD in the main tread
dispatch_async(dispatch_get_main_queue(), ^{
for (NSDictionary* internalDict in resultsArray)
{
for (NSString *key …Run Code Online (Sandbox Code Playgroud) 我试图通过使用此代码在MBProgressHUD上显示图像
MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.navigationController.view addSubview:HUD];
HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark"]] autorelease];
HUD.mode = MBProgressHUDModeCustomView;
HUD.labelText = @"?? ????? ???? ?????";
[HUD show:YES];
[HUD hide:YES afterDelay:1.5];
Run Code Online (Sandbox Code Playgroud)
但这就是我得到的

问题是什么 ?
我收到了Crashlytics的崩溃报告
UIKit _wrapRunLoopWithAutoreleasePoolHandler + 36
Run Code Online (Sandbox Code Playgroud)
它只发生在我的应用程序的总用户一次,我从未见过它在调试版本之前的崩溃.
从搜索来看,它与太多的"发布"有关,但我的项目实际上是使用了ARC和所有第三方模块,它们都是ARC.我发现只有一个仍然具有非ARC的模块是MBProgressHUD.但它在dealloc()和#ifdef!_has_feature(obj_arc)中调用"release".因此,根本不应该调用该版本.这是代码
- (void)dealloc {
[self unregisterFromNotifications];
[self unregisterFromKVO];
#if !__has_feature(objc_arc)
[color release];
[indicator release];
[label release];
[detailsLabel release];
[labelText release];
[detailsLabelText release];
[graceTimer release];
[minShowTimer release];
[showStarted release];
[customView release];
[labelFont release];
[labelColor release];
[detailsLabelFont release];
[detailsLabelColor release];
#if NS_BLOCKS_AVAILABLE
[completionBlock release];
#endif
[super dealloc];
#endif
}
Run Code Online (Sandbox Code Playgroud)
我可以断定这次崩溃是随机发生的吗?因为我的代码中没有调用"release"(我的应用程序仍有相对较小的用户群)
提前致谢
我一直在使用MBProgressHUD来显示hud.在纵向模式下一切正常,但是当我改变设备方向时,hud没有正确旋转?
是否有一些财产以正确的方式设置?
我有我的ViewController
public partial class TestView
: MvxViewController
{
...code here...
}
Run Code Online (Sandbox Code Playgroud)
我在按钮事件TouchUpInside上加载我的下一个ViewController,如下所示:
btnSearch.TouchUpInside += (object sender, EventArgs e) => {
BTProgressHUD.Show("test");
ViewModel.GoParameterizedCommand.Execute(null);
};
Run Code Online (Sandbox Code Playgroud)
它在ViewDidLoad中定义的那个事件.我在下一个ViewController上显示的"测试"消息,而不是在加载这个消息时.我怎么能在加载过程中显示该消息,而不是在下一个ViewController加载时?我也尝试过使用MBProgressHUD
btnSearch.TouchUpInside += (object sender, EventArgs e) => {
var hud = new MTMBProgressHUD (View) {
LabelText = "Waiting...",
RemoveFromSuperViewOnHide = true
};
View.AddSubview(hud);
hud.Show (animated: true);
ViewModel.GoParameterizedCommand.Execute(null);
};
Run Code Online (Sandbox Code Playgroud)
但行为也一样.
我写了一个函数,在UIVIewController. 下面给出toast函数
-(void)showToast:(NSString*)string
{
MBProgressHUD *hud;
hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeText;
hud.labelText = string;
hud.margin = 10.f;
hud.yOffset = 150.f;
hud.removeFromSuperViewOnHide = YES;
hud.userInteractionEnabled = NO;
[hud hide:YES afterDelay:2];
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是我的吐司消息隐藏在键盘后面。谁能告诉我如何在键盘高度上方显示吐司?
我正在使用以下代码,但未显示进度平视显示器,因此请为此提供帮助。
let loadingHUD = MBProgressHUD()
loadingHUD.mode = MBProgressHUDModeCustomView
loadingHUD.labelText = nil
loadingHUD.detailsLabelText = nil
let customView = UIView.init(frame: CGRect(x: 0, y: 0, width: 80, height: 80))
let gifmanager = SwiftyGifManager(memoryLimit:20)
let gif = UIImage(gifName: "miniballs1.gif")
let imageview = UIImageView(gifImage: gif, manager: gifmanager)
imageview.frame = CGRect(x: 0 , y: 0, width: customView.frame.width, height: customView.frame.height)
customView.addSubview(imageview)
customView.bringSubview(toFront: imageview)
loadingHUD.customView = customView
loadingHUD.customView.bringSubview(toFront: customView)
loadingHUD.show(true)
Run Code Online (Sandbox Code Playgroud) 我正在使用MBProgressHUD在下载Web服务数据时显示活动指示器.该应用程序通常用于连接性较差的农村地区,因此我希望能够将HUD的超时设置为10秒(仅为任意数字).我不知道该如何解决这个问题.有人可以提供建议吗?谢谢!
MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:self.view];
NSString *info = [NSString stringWithFormat:@"Loading %@ gauges", self.stateIdentifier];
[hud setLabelText:info];
[hud setDetailsLabelText:@"Please wait..."];
[hud setDimBackground:YES];
[hud setOpacity:0.5f];
[hud show:YES];
[self.view addSubview:hud];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
stateGauges = [[GaugeList alloc] initWithStateIdentifier:stateIdentifier andType:nil];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
[hud removeFromSuperview];
});
});
Run Code Online (Sandbox Code Playgroud) 我使用的是较旧的 pod MBProgressHUD,它在尝试在 iOS 17.0 上运行时返回错误:
Multiple methods named 'setProgress:' found with mismatched result, parameter type or attributes.
Run Code Online (Sandbox Code Playgroud)
它相当深入地集成到应用程序中,因此我想尽可能少地编辑它。关于最佳解决方案有什么想法吗?我已经看到了类型转换id的选项,但我有点不确定将其转换为什么?
mbprogresshud ×10
ios ×8
objective-c ×4
iphone ×2
xcode ×2
c# ×1
cocoa-touch ×1
crashlytics ×1
ios17 ×1
ios4 ×1
ios5 ×1
ipad ×1
json ×1
mvvmcross ×1
swift ×1
swift3 ×1
uikeyboard ×1
xamarin.ios ×1