我想使用微调器。但是,下面的代码不显示 旋转器,我不知道为什么。如何使这项工作?顺便说一下,它正在发生 从我创建的提交按钮调用。
//spinner declared in .h file
UIActivityIndicatorView *aSpinner;
//throw up spinner from submit btn we created
aSpinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:
UIActivityIndicatorViewStyleWhiteLarge];
[self.view addSubview:aSpinner];
[aSpinner release];
[aSpinner startAnimating];
//send blocking request
[request startSynchronous];
//get rid of spinner when finished delegate is fired
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSLog(@"REQUEST FINISHED");
[aSpinner stopAnimating];
//[aSpinner release];
}
答案 0 :(得分:14)
如果在显示微调器后立即调用某些阻塞代码,则UI将不会更新,因为它仅在主运行循环运行时更新。如果这确实是问题的根源,那么当您注释[request startSynchronous]
行进行测试时,微调器就会出现。
解决方案是使用异步请求。委托代码看起来就像你已经这样做了,但另一方面,启动调用提到了同步操作。小心解释一下? (或者我忽视了什么?)
答案 1 :(得分:3)
//spinner declared in .h file
UIActivityIndicatorView *aSpinner;
在头文件中添加一个属性:
@property (nonatomic, retain) UIActivityIndicatorView *aSpinner;
不要忘记在.m文件中合成!
//throw up spinner from submit btn we created
UIActivityIndicatorView *tempSpinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
self.aSpinner = tempSpinner;
[tempSpinner release];
[self.view addSubview:self.aSpinner];
[self.aSpinner startAnimating];
//send blocking request
[request startSynchronous];
//get rid of spinner when finished delegate is fire
- (void)requestFinished:(ASIHTTPRequest *)request {
NSLog(@"REQUEST FINISHED");
[self.aSpinner stopAnimating];
}
在你的dealloc方法中你写道:[aSpinner release];然而,这只是众多方法中的一种。
答案 2 :(得分:0)
问题可能在于你要添加微调器。是否能够,并且它是否具有显示活动指标的尺寸? (例如,UIBarButtonItems无法处理addSubview)