我在iOS项目中使用ASIHttpRequest。在requestFail我这样做:
#pragma mark Erreur requête de connexion
- (void)requestFailed:(ASIHTTPRequest *)request
if([[request error] code] == ASIConnectionFailureErrorType )
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion"
message:@"Connexion avec le serveur impossible : vérifiez vos paramètres réseaux."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
else if ([[request error] code] == ASIRequestTimedOutErrorType)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion"
message:@"La requête a expiré !"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion"
message:@"Une erreur inconnue est survenue."
delegate:nil
cancelButtonTitle:@"Annuler"
otherButtonTitles:nil];
[alert show];
}
}
现在,我想用imageView替换我所有的UIAlertView(向用户显示一个特殊的UIImageView告诉他有错误(connexion failure ....),并在没有服务器时删除此imageView错误。
简历:我想在请求失败时显示imageView并删除此图像视图并重新发送请求(我如何使用ASIHtppRequest执行此操作)?
答案 0 :(得分:1)
我认为您可以使用UIActionSheet来替换UIAlertView,因为ActionSheet可以像UIView一样处理,因此您可以呈现包含UIImageView的ActionSheet。您还可以使用其中一个按钮来关闭ActionSheet以重新加载ASIHTTPRequest。 以下代码显示了UIActionSheet的委托方法,允许您添加UIImageView并在单击取消按钮时触发您的请求。
#pragma -
#pragma ActionSheet Delegate
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
UIImageView * yourImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 55, 320, 100)];
//Configure yourImageView...
//Add picker to action sheet
[actionSheet addSubview:yourImageView];
// Release your yourImageView
[yourImageView release];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex != [actionSheet cancelButtonIndex])
{
// Call back your ASIHTTPRequest
}
}
不要忘记在.h文件中实现UIActionSheetDelegate。
祝你好运。