【发布时间】:2013-12-26 06:02:49
【问题描述】:
我有一个 uiView 覆盖屏幕,带有标签和 uiindicator,当我进行网络调用时运行。
现在问题来了。我在viewdidload中已经这样初始化了
[self.UiIndicator_view setHidden:YES];
[self.UiIndicator_label setHidden:YES];
[self.UiIndicator_indicator setHidden:YES];
在我打过的网络电话上
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
{
[self ShowIndicator:@"Syncing Data"];
if([self CheckNetwork])
[HttpMethods GetHeaderDataForAppHttp];
dispatch_async(dispatch_get_main_queue(), ^
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Network Error"
message:@"You have no network connection. Please connect to a network to sync data."
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
[self StopIndicator];
});
});
方法如下
-(void)ShowIndicator:(NSString*)labelText
{
[self.UiIndicator_view setHidden:NO];
[self.UiIndicator_label setHidden:NO];
[self.UiIndicator_label setText:labelText];
[self.UiIndicator_indicator setHidden:NO];
[self.UiIndicator_indicator startAnimating];
}
-(void)StopIndicator
{
[self.UiIndicator_view setHidden:YES];
[self.UiIndicator_label setHidden:YES];
[self.UiIndicator_indicator setHidden:YES];
[self.UiIndicator_indicator stopAnimating];
}
现在的问题。当我第一次启动应用程序时,代码运行得很好。调用到 dispatch_asyn,我看到一个带有标签和指示符的 UIView,在调用返回到主线程后,uiview 和指示符消失,如果没有获取数据,我会得到 alertview。
如果第一次尝试无法获取数据,我已为用户提供了手动调用相同函数的选项。这里问题出现了,我可以在 NSLOG 中看到该方法已被调用,http 请求被触发,但我看不到带有指示器的 uiview,即使应该在 uiview 后面的元素和按钮也不可点击(这意味着顶部有一个 UIVIEW,但我看不到它)。一段时间后,我得到了 uialeart,这意味着通话已完成。
设置 uiview hidden = yes 会使其无效或类似的东西吗?我无法解决这个简单的问题。
【问题讨论】:
标签: ios iphone objective-c uiview uistoryboard