0

我正在制作一个同步功能,将本地核心数据与服务器同步。我想让同步在后台发生,而不会中断用户交互。当我收到响应(无论是成功还是失败)时,应用程序应该在屏幕上的某处显示一条消息,以通知用户结果。

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];
        }
    }];
}

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

4

2 回答 2

3

看起来最简单的事情就是使用SVProgressHUDMaskTypeNone.

也看看这个问题

于 2016-08-02T02:22:56.437 回答
0

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

于 2016-08-02T02:22:31.080 回答