iOS - 在屏幕上显示SVProgressHUD消息,而不会中断用户交互

时间:2016-08-02 01:59:28

标签: ios objective-c uialertcontroller svprogresshud

我正在制作同步功能,将本地Core Data与服务器同步。我希望在不中断用户交互的情况下在后台进行同步。当我收到回复(无论成功还是失败)时,应用程序应在屏幕上的某处显示一条消息,通知用户结果。

UIAlertController不是一个好选择,因为它会阻止用户操作。

目前我正在使用SVProgressHUD

 __weak StampCollectiblesMainViewController *weakSelf = self;
if ([[AppDelegate sharedAppDelegate] hasInternetConnectionWarnIfNoConnection:YES]) {
    [_activityIndicator startAnimating];
    [Stamp API_getStampsOnCompletion:^(BOOL success, NSError *error) {
        if (error) {
            [_activityIndicator stopAnimating];
            [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeClear];
            [SVProgressHUD setAnimationDuration:0.5];
            [SVProgressHUD showErrorWithStatus:@"error syncronize with server"];
        }
        else {
            [_activityIndicator stopAnimating];
            [featuredImageView setImageWithURL:[NSURL URLWithString:[Stamp featuredStamp].coverImage] usingActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
            [yearDropDownList setValues:[Stamp yearsDropDownValues]];
            [yearDropDownList selectRow:0 animated:NO];
            [weakSelf yearDropDownListSelected];
            [SVProgressHUD dismiss];
        }
    }];
}

我可以进行修改,以便用户仍可以与应用进行互动吗?我只想在不占用太多空间的情况下显示消息。任何帮助深表感谢。感谢。

2 个答案:

答案 0 :(得分:3)

看起来最简单的方法是使用SVProgressHUDMaskTypeNone

另请查看this issue

答案 1 :(得分:0)

抱歉,您必须构建自己的自定义视图。 事实上,并不是那么困难。我要做的只是在屏幕顶部添加一个小视图,其中包含自定义消息和关闭按钮(允许用户快速隐藏消息)。这通常是通过将这个新视图添加到当前窗口来完成的,因此它将位于每个视图的顶部,并且不会阻止UI(除了该视图隐藏的部分:))