Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SVProgressHUD-显示/隐藏控件会使它在下次调用showWithStatus时无法显示_Ios_Svprogresshud - Fatal编程技术网

Ios SVProgressHUD-显示/隐藏控件会使它在下次调用showWithStatus时无法显示

Ios SVProgressHUD-显示/隐藏控件会使它在下次调用showWithStatus时无法显示,ios,svprogresshud,Ios,Svprogresshud,我有一些源代码下面将复制这一点。在HUD有机会出现之前调用showWithStatus并解除,会导致控件在下次调用showWithStatus时不显示。有人知道什么解决办法吗 // Commenting these will show SVProgressHUD [SVProgressHUD showWithStatus:@"Loading..."]; [SVProgressHUD dismiss]; // Comment above to show SVProgressHUD [SVProg

我有一些源代码下面将复制这一点。在HUD有机会出现之前调用
showWithStatus
并解除,会导致控件在下次调用
showWithStatus
时不显示。有人知道什么解决办法吗

// Commenting these will show SVProgressHUD
[SVProgressHUD showWithStatus:@"Loading..."];
[SVProgressHUD dismiss];
// Comment above to show SVProgressHUD

[SVProgressHUD showWithStatus:@"Loading..."];
[self performSelector:@selector(dismissHUD) withObject:nil afterDelay:5.0f];

编辑:我这里有一些复制了它。

我通过在第二个HUD显示器上这样做来解决这个问题:

[self performSelector:@selector(showHud) withObject:nil afterDelay:0.1];

我已经解决了这个问题:

1。添加属性

@property (nonatomic, readonly, getter = isDismissing) BOOL dismissing;
- (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration  
- (void)showImageSS:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration
- (void)showImage:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    if(self.isDismissing){
        __weak SVProgressHUD *weakSelf = self;
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * SVProgressHUDDefaultAnimationDuration),dispatch_get_main_queue(), ^{
            [weakSelf showImageSS:image status:status duration:duration];
        });
    }else{
        [self showImageSS:image status:status duration:duration];
    }
}
- (void)showImageSS:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    // this is orginal function - (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration code block
}  
2.添加标志

- (void)dismissWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay {
    _dismissing = YES;
    ...
        void (^completionBlock)(void) = ^{
            ...
            _dismissing = NO;
        };
    ...
}
重命名功能

@property (nonatomic, readonly, getter = isDismissing) BOOL dismissing;
- (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration  
- (void)showImageSS:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration
- (void)showImage:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    if(self.isDismissing){
        __weak SVProgressHUD *weakSelf = self;
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * SVProgressHUDDefaultAnimationDuration),dispatch_get_main_queue(), ^{
            [weakSelf showImageSS:image status:status duration:duration];
        });
    }else{
        [self showImageSS:image status:status duration:duration];
    }
}
- (void)showImageSS:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    // this is orginal function - (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration code block
}  
带名称的收件人

@property (nonatomic, readonly, getter = isDismissing) BOOL dismissing;
- (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration  
- (void)showImageSS:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration
- (void)showImage:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    if(self.isDismissing){
        __weak SVProgressHUD *weakSelf = self;
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * SVProgressHUDDefaultAnimationDuration),dispatch_get_main_queue(), ^{
            [weakSelf showImageSS:image status:status duration:duration];
        });
    }else{
        [self showImageSS:image status:status duration:duration];
    }
}
- (void)showImageSS:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    // this is orginal function - (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration code block
}  
3.添加延迟

@property (nonatomic, readonly, getter = isDismissing) BOOL dismissing;
- (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration  
- (void)showImageSS:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration
- (void)showImage:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    if(self.isDismissing){
        __weak SVProgressHUD *weakSelf = self;
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * SVProgressHUDDefaultAnimationDuration),dispatch_get_main_queue(), ^{
            [weakSelf showImageSS:image status:status duration:duration];
        });
    }else{
        [self showImageSS:image status:status duration:duration];
    }
}
- (void)showImageSS:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    // this is orginal function - (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration code block
}  

@property (nonatomic, readonly, getter = isDismissing) BOOL dismissing;
- (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration  
- (void)showImageSS:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration
- (void)showImage:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    if(self.isDismissing){
        __weak SVProgressHUD *weakSelf = self;
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * SVProgressHUDDefaultAnimationDuration),dispatch_get_main_queue(), ^{
            [weakSelf showImageSS:image status:status duration:duration];
        });
    }else{
        [self showImageSS:image status:status duration:duration];
    }
}
- (void)showImageSS:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration
{
    // this is orginal function - (void)showImage:(UIImage)image status:(NSString)status duration:(NSTimeInterval)duration code block
}  

finsh感谢所有人

如果能就官方GitHub项目提交一份bug报告,那就太好了。作者很可能对答案了如指掌。尽管如此,+1用于提供一个测试用例。我做到了。。但有几个悬而未决的问题,我想我可能会在这里更快地得到帮助:)当然,这没什么错。只是觉得通知维护人员很重要,这样其他人(包括我自己)就不会在将来遇到同样的问题。很高兴你这么做:-)我会在那里发表评论,希望它能吸引更多的注意力。