• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - UIActivityIndi​​cator 没有动画

[复制链接]
菜鸟教程小白 发表于 2022-12-13 13:00:38 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我一直在为这个问题撞墙,需要一些帮助。 我试图在后台加载数据时显示 UIActivityIndi​​cator。我不确定这是否相关,但我正在加载一个表格 View 。指示器出现,但不旋转……除非我触摸屏幕,或者在加载时发生其他事情,比如我收到一条短信。代码如下:

UIActivityIndicatorView  *av = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
av.frame=CGRectMake(145, 160, 25, 25);
av.tag  = 1;
[self.mTableView addSubview:av];
[av startAnimating];
[self performSelectorInBackgroundselector(load) withObject:nil];

我也试过这个:

UIActivityIndicatorView  *av = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
av.frame=CGRectMake(145, 160, 25, 25);
av.tag  = 1;
[self.view addSubview:av];
[av startAnimating];
[self performSelectorInBackgroundselector(load) withObject:nil];

并尝试注释掉最后一行 - 所以 not 让后台线程运行。我已经在 viewDidLoadviewDidAppear 方法中尝试了这两个版本的代码。

有什么想法吗?

编辑这是我的加载方法

- (void)load {

NSString *post = [NSString stringWithFormat"id[]=%@", [ids objectAtIndex:0]];

for(int i = 1; i < ids.count; i++){
    post = [NSString stringWithFormat"%@&id[]=%@", post, [ids objectAtIndex:i]];
}


NSURL *url=[NSURL URLWithString"http://myurl/instructions"];

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat"%d", [postData length]];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:url];
[request setHTTPMethod"OST"];
[request setValue:postLength forHTTPHeaderField"Content-Length"];
[request setValue"application/x-www-form-urlencoded" forHTTPHeaderField"Content-Type"];
[request setHTTPBody:postData];

/* when we user https, we need to allow any HTTPS cerificates, so add the one line code,to tell teh NSURLRequest to accept any https certificate, i'm not sure about the security aspects
 */

//[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]];

NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];

[self parseData:data];

[spinner stopAnimating];

}



Best Answer-推荐答案


您没有包含足够的代码来查看停止 UIActivityIndi​​cator 动画的位置以及显示动画时发生的情况,但问题几乎可以肯定是以下问题之一:

1) 您希望您的代码等待某个异步方法,这会导致您的事件指示器过早关闭,

2) “后台”任务和 UIActivityIndi​​cator 都在同一个线程上运行,而您的“后台”任务将线程独占到事件指示器不够用的地步是时候制作动画了。

这篇文章提供了一个如何将 UIActivityIndi​​cator 推送到自己的线程中的示例:

Activity Indicator doesn't spin

关于iphone - UIActivityIndi​​cator 没有动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079483/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap