我正在制作同步功能,将本地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];
}
}];
}
我可以进行修改,以便用户仍可以与应用进行互动吗?我只想在不占用太多空间的情况下显示消息。任何帮助深表感谢。感谢。
答案 0 :(得分:3)
看起来最简单的方法是使用SVProgressHUDMaskTypeNone
。
另请查看this issue。
答案 1 :(得分:0)
抱歉,您必须构建自己的自定义视图。 事实上,并不是那么困难。我要做的只是在屏幕顶部添加一个小视图,其中包含自定义消息和关闭按钮(允许用户快速隐藏消息)。这通常是通过将这个新视图添加到当前窗口来完成的,因此它将位于每个视图的顶部,并且不会阻止UI(除了该视图隐藏的部分:))