如何解决UIActivityIndicatorView NSURLConnection,视图未显示
| 我在通过NSURLConnection请求的帮助从服务器收集数据时显示UIActivityIndicatorView时出现问题。 我认为该请求是异步的,即是在新线程中启动的。我已经从Apple的AdvancedTableViewCells示例中复制了内容。我在iOS 4.3 iPhone模拟器的XCode中运行它。我还没有在真正的iPhone上测试过它。 我也用谷歌搜索了这个问题,并尝试了很多建议,但感觉是我忘记了一些基本知识。下面是我来自RootViewController类的代码。 我相信,我只是选择一行,创建并添加activityview,开始动画,然后创建NSUrlConnection对象,该对象开始从另一个线程中的服务器获取数据。 有任何想法吗?@interface RootViewController : UITableViewController {
NSMutableData *receivedData;
UIActivityIndicatorView *activityView;
}
@end
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// In my rootviewcontroller
activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[self.view addSubview:activityView];
[activityView startAnimating];
…
NSMutableURLRequest *tUrlRequest = [tQuery createUrlRequest:tStatId];
NSURLConnection *tConnectionResponse = [[NSURLConnection alloc] initWithRequest: tUrlRequest delegate: self];
if (!tConnectionResponse) {
NSLog(@\"Failed to submit request\");
} else {
NSLog(@\"Request submitted\");
receivedData = [[NSMutableData data] retain];
}
return;
}
...
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@\"Succeeded! Received %d bytes of data\",[receivedData length]);
NSXMLParser *tParser = [[NSXMLParser alloc] initWithData: receivedData];
...
[tParser parse];
...
[connection release];
[receivedData release];
[NSThread sleepForTimeInterval: 2.0]; // Just to see if activity view will show up...
NSUInteger row = 1;
if (row != NSNotFound)
{
// Create the view controller and initialize it with the
// next level of data.
VivadataTViewController *vivaViewController = [[VivadataTViewController alloc] init];
if (activityView != nil) {
[activityView stopAnimating];
}
}
}
解决方法
遇到同样的问题,尝试将“属性检查器”->“样式”下的UIActivityIndicatorView的颜色更改为“灰色”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。